home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / mus / edit / OctamedSS1.03c.lha / Soundstudio / RexxDocs / ARexx.Doc next >
Text File  |  1996-06-18  |  70KB  |  2,355 lines

  1. ############################################################################
  2.  
  3.     OctaMED ARexx documentation for OctaMED AREXX version 2
  4.     (OctaMED Soundstudio V1)
  5.  
  6. Date:    2.6.1996
  7.  
  8. ############################################################################
  9.  
  10. General
  11. ~~~~~~~
  12. OctaMED's ARexx commands are divided into sections. An ARexx command
  13. generally has a form of:
  14.  
  15.     XX_COMMAND
  16.  
  17. Where XX specifies the section (e.g. SA = sample editor), COMMAND is the
  18. actual command name (documented below). Neither commands nor their keywords
  19. are case-sensitive, however some arguments passed may be (for example, the
  20. song name).
  21.  
  22. A command of form:
  23.  
  24.     XX_COMMAND ?
  25.  
  26. Returns the argument template of that command. It does nothing else.
  27.  
  28. You should generally turn on OPTIONS RESULTS on your ARexx programs that
  29. utilize OctaMED. All OctaMED commands that return information pass it in the
  30. variable RESULT. Alternatively, you can use the VAR keyword to place the
  31. result in any variable you wish. For example:
  32.  
  33.     ED_GETNUMBLOCKS VAR numblocks
  34.  
  35. Places the number of blocks to variable 'numblocks'. The VAR keyword is not
  36. mentioned in command templates. It works with all commands that return
  37. results.
  38.  
  39. You should be careful with quotes. For example, to request an answer using
  40. the command WI_REQUEST:
  41.  
  42.     WI_REQUEST "Answer YES or NO!" "Yes|No"
  43.  
  44. This would seem to work, and it does work when invoked from OctaMED's
  45. built-in command shell. However, ARexx strips off quotes around the strings,
  46. and confuses OctaMED. To make it work, you must use double quotes:
  47.  
  48.     WI_REQUEST '"Answer YES or NO!"' '"Yes|No"'
  49.  
  50. OctaMED's command shell can be used to test all ARexx commands.
  51.  
  52. When writing ARexx macros, you should be aware of the version number of
  53. OctaMED in use. You may be using macros that are not available in earlier
  54. versions. The description of each command specifies the first OctaMED ARexx
  55. version in which that command/option can be used. If no version number is
  56. specified, the command is available in all OctaMED ARexx versions. See also
  57. the description of command VE_OCTAMEDREXX.
  58.  
  59. All numeral arguments in OctaMED's ARexx commands are DECIMAL NUMBERS. Even
  60. though OctaMED displays some values in hex or other bases, ARexx commands
  61. accept and return only decimal numbers. Use ARexx's own functions to convert
  62. them, if needed. OctaMED doesn't always check the validity of the arguments,
  63. you must be sure you don't pass numbers out of range! Otherwise you may
  64. badly confuse OctaMED.
  65.  
  66. Some editing functions require argument NOTE. This is not a string, but a
  67. note number. Note number 0 = ---, 1 = C-1, 2 = C#1, 13 = C-2 and so on.
  68.  
  69. Command templates use the following specifiers for an argument:
  70.  
  71.     (none)        A string
  72.     /S        A switch, turned on if the keyword appears,
  73.             otherwise off
  74.     /N        A number is expected
  75.     /K        The keyword must appear on the command line e.g.
  76.             CMD KEY/K/N must be used like: CMD KEY 2 or
  77.             CMD KEY=2 (CMD 2 doesn't work).
  78.     /A        This argument is obligatory. Otherwise the
  79.             command fails.
  80.     /F        The rest of the command line is used as the
  81.             argument.
  82.     /M        Multiple arguments are allowed (separated with
  83.             spaces).
  84.  
  85.  
  86. Version
  87. ~~~~~~~
  88. The 'Version' keyword specifies the version (obtainable via VE_OCTAMEDREXX)
  89. of OctaMED ARexx implementation the command (or part of it) is first
  90. available in.
  91.  
  92. Startup script
  93. ~~~~~~~~~~~~~~
  94. After starting OctaMED, OctaMED automatically attempts to execute an ARexx
  95. script "om_startup.omed". You can place any initialization commands in it,
  96. launch programs etc.
  97.  
  98. Window names
  99. ~~~~~~~~~~~~
  100. Some commands that handle windows require mnemonic window names. These are
  101. currently defined window names:
  102.  
  103. AREXXTRIGGERSETUP
  104. AURAOPTIONS
  105. BLOCKLIST
  106. BLOCKPROPERTIES
  107. EDITOR
  108. EQBAR
  109. EQOSC
  110. EXPANDSHRINK
  111. FASTMEMPLAY
  112. FONT
  113. HIGHLIGHTOPTIONS
  114. INFORMATION
  115. INPUTMAP
  116. INSTLOAD
  117. INSTPARAMS
  118. INSTTYPE
  119. KEYBOARDOPTIONS
  120. KEYBOARDSHORTCUTS,
  121. MAINCONTROL
  122. MIDICMD3CXXSETTINGS
  123. MIDIINPUTCHANNEL,
  124. MIDIMESSAGEEDITOR
  125. MISCOPTIONS
  126. MISCOPT_DIRS
  127. MIXEFFECTS
  128. MIXPAN
  129. MIXPARAMETERS
  130. MOUSEOPTIONS
  131. NEW
  132. NOTATION
  133. NOTEECHO
  134. NOT_ASSIGNTRACKS
  135. NOT_DISPLAYSETUP
  136. NOT_PRINT
  137. NOT_SIGNATURES
  138. NOT_STAFFSETUP
  139. NOT_TOOL
  140. PALETTE
  141. PLAYINGSEQ
  142. PRINTOPTIONS
  143. PROGKEYS
  144. REPLACENOTES
  145. SAMPLEEDITOR
  146. SAMPLELISTEDITOR
  147. SAVEOPTIONS
  148. SAVETIMER
  149. SAVE_PPSETTINGS
  150. SAVE_XPKSETTINGS
  151. SA_ADDWORKSPACE
  152. SA_ADJUSTY
  153. SA_CHANGEPITCH
  154. SA_CHANGEVOLUME
  155. SA_CHORDCREATION
  156. SA_DISPLAYSETTINGS
  157. SA_ECHO
  158. SA_FILTERBOOST
  159. SA_MIX
  160. SA_NOISE
  161. SECTIONLIST
  162. SELECTINSTRUMENT
  163. SMFLOADOPTIONS
  164. SONGANNOTATION
  165. SONGOPTIONS
  166. SONGSELECT
  167. SPREADNOTES
  168. SYNTHSOUNDEDITOR
  169. SY_PROGRAM
  170. SY_STRETCH
  171. SY_VOLUME
  172. TEMPO
  173. TEMPOOP
  174. TOCCATA_CAPTURE
  175. TRACKVOLUMES
  176. TRANSPOSE
  177.  
  178. Option names
  179. ~~~~~~~~~~~~
  180. Some commands handle global option values/switches. They use
  181. mnemonic option names as well. Currently defined are:
  182.  
  183. AddPaths        Instr Menu/Add Path
  184. AdvCurs            Keyboard Options/Advance Cursor
  185. AdvLine            Keyboard Options/Advance Line
  186. AdvTrk            Keyboard Options/Advance Track
  187. AdvVoice        Keyboard Options/Advance with sound
  188. AUDIOCHANNELS        Project Menu/Audio Channels
  189. AuraActive        Aura Options/Active
  190. AuraFixedRate        Aura Options/Fixed Output Rate
  191. AuraMinPer        Aura Options/Minimum Period
  192. AuraSingleCh        Aura Options/Right channel only
  193. AutoFlush        Instr Menu/Automatic Flush
  194. AutoFreeze        Settings Menu/Auto-Freeze Screen
  195. AutoTerminate        MIDI Msg Editor/Auto-Terminate Capt.
  196. CHORD            Main Control/Chord
  197. CloseWB            Misc. Options/Close Workbench
  198. Compression        Save Options/Compression
  199. CreateIcons        Save Options/Create Icon
  200. CreateIconsForSamples    Sample Editor/Settings Menu/Create Icons...
  201. CutAllPages_Block    Block Menu/All Cmd Pages
  202. CutAllPages_Range    Edit Menu/All Cmd Pages
  203. CutAllPages_Track    Track Menu/All Cmd Pages
  204. DefChannelMode        Misc. Options/Default Channel Mode
  205. DefHQMode        Misc. Options/Default HQ Mode
  206. DefLPB            Tempo Op/Set Curr. as Def (Tempo/LPB)
  207. DefSlowHQ        Misc. Options/Default Slow HQ
  208. DefTempo        Tempo Op/Set Curr. as Def (Tempo/Tempo)
  209. DefTempoBPM        Tempo Op/Set Curr. as Def (Tempo/SPD/BPM)
  210. DefTPL            Tempo Op/Set Curr. as Def (Tempo/TPL)
  211. DefVolMode        Misc. Options/Default Volume Mode
  212. DestrSpc        Keyboard Options/Destructive Spacing
  213. EDIT            Main Control/Edit
  214. EXPSHRK_FACTOR        Expand/Shrink / Factor
  215. FastMemPlay        FastMemPlay/Active
  216. FastMemPlay_BufferSize    FastMemPlay/Buffer Size
  217. F6_F10_Highlights    Keyboard Options/F6-F10 = Highlights
  218. FollowSeq        Playing Sequence/Follow
  219. FourBitPalette        Palette/Palette Type
  220. GadgetShortCutQual    Misc. Options/Gadget Shortcut Qual
  221. HalveLoadedSamples    Instr Menu/Halve Loaded Samples
  222. HelpViewer        Misc. Options/Help Viewer
  223. HtoB            Misc. Options/H->B
  224. ImmediateMIDIPresetChg    MIDI Menu/Immediate Preset Change
  225. InstCtrlStrLoad        Misc. Options/InstCtrlStrLoad
  226. KEYMAPACTIVE        Input Map Editor/Map Active
  227. KeypadMap        Keyboard Options/Keypad Mapping
  228. KeypadMode        Keyboard Options/Keypad Mode
  229. KillBx7B00        MIDI Menu/Note Killing
  230. KillNOff        MIDI Menu/Note Killing
  231. LMB            Mouse Options/Left Button
  232. MIDIACTIVE        MIDI Menu/MIDI Active
  233. MIDIACTSENSING        MIDI Menu/Send Active Sensing
  234. MIDIEXTSYNC        MIDI Menu/Ext Sync
  235. MIDIINPUT        MIDI Menu/Input Active
  236. MIDIREADKEYUPS        MIDI Menu/Read Key-Up's
  237. MIDIREADVOLUME        MIDI Menu/Read Volume
  238. MIDISENDOUTINPUT    MIDI Menu/Send Out Input
  239. MIDISENDSYNC        MIDI Menu/Send Sync
  240. MIDISLAVE        MIDI Menu/Slave Mode Active
  241. Mix_BufferSize        Mixing Parameters/Mix Buffer Size
  242. Mix_Frequency        Mixing Parameters/Mixing Frequency
  243. Mix_OutputDev        Mixing Parameters/Mixing Mode
  244. MixSwapAmigaChannels    Misc. Options/Swap Amiga Channels (Mix)
  245. MMB            Mouse Options/Middle Button
  246. Notat_DefaultWidth    Not. Display Setup/Default
  247. Notat_Dispmode        Not. Display Setup/Positioning Mode
  248. NOTAT_STAFFNAMES    Not. Display Setup/Display Staff Names
  249. OverwriteReq        Misc. Options/Overwrite Requesters
  250. PALETTE_WB        Palette/WB Palette
  251. PolyPlay        Keyboard Options/Poly Play
  252. PlayAfterLoading    Settings Menu/Play After Loading
  253. PPBuffer        PP Settings/Speedup Buffer
  254. PPEfficiency        PP Settings/Efficiency
  255. PrintResolution        Print Notation/Resolution
  256. RemPaths        Instr Menu/Remove Path
  257. ReqTools        Misc. Options/Use Reqtools
  258. ResetChord        Keyboard Options/Chord Reset
  259. RMB            Mouse Options/Right Button
  260. RoundSpc        Keyboard Options/Auto-Round Spacing
  261. SaveAllInfo        Save Options/Save Secondary Data
  262. SAVEINSTRUMENTS        Save Options/Save Instruments
  263. SAVEMULTIMOD        Save Options/Save Multi-Module
  264. SaveNotation        Save Options/Save Notation Data
  265. SaveTimer        Save Timer/Time Between Saves
  266. SaveTimerOpenWin    Save Timer/Open Save Window
  267. ShowAnnoAfterLoading    Song Annotation/Show After Loading
  268. ShowChangedSettings    Misc. Options/Show Changed Settings
  269. ShowUnusedBlocks    Block List/Show Unused
  270. SizeOnlyWindowZoom    Misc. Options/Size-Only Window Zoom
  271. SListFileFormat_16    SList Editor/Format Menu/16-Bit Samples
  272. SListFileFormat_8    SList Editor/Format Menu/8-Bit Samples
  273. SMFL_CMDPAGE_CHAFTERTOUCH    SMF Loading Options
  274. SMFL_CMDPAGE_CHANNELVOL        "
  275. SMFL_CMDPAGE_MIDIPRESET        "
  276. SMFL_CMDPAGE_MODWHEEL        "
  277. SMFL_CMDPAGE_PAN        "
  278. SMFL_CMDPAGE_PITCHBEND        "
  279. SMFL_CMDPAGE_TEMPO        "
  280. SMFL_CMDPAGE_VELOCITY        "
  281. SMFL_DONTINTERMIX        "
  282. SMFL_LINESPERBLOCK        "
  283. SMFL_MAXTRACKS            "
  284. SMFL_OFFSETADJUST        "
  285. SMFL_RESOLUTION            "
  286. SMPEDCRNOISE_LEVEL    Sample Editor/Create Noise/Level
  287. SmpEdDensity        Sample Editor/Disp. Settings/Pixel Density
  288. SmpEdDigiWVoice        Sample Editor/Sampler Voice Monitor
  289. SMPEDECHO_NUM        Sample Editor/Echo/Number of Echoes
  290. SMPEDECHO_RATE        Sample Editor/Echo/Echo Rate
  291. SMPEDECHO_VOLDECR    Sample Editor/Echo/Volume Decrease
  292. SmpEdFastGfx        Sample Editor/Disp. Settings/Fast Graphics
  293. SMPEDFB_AVERAGING    Sample Editor/Filt/Boost/Averaging
  294. SMPEDFB_DISTANCE    Sample Editor/Filt/Boost/Distance
  295. SMPEDFREEHAND        Sample Editor/Freehand
  296. SmpEdMaxVolClip        Sample Editor/Change Volume/Max Clip
  297. SmpEdMinZoom        Sample Editor/Disp. Settings/Minimum Zoom
  298. SMPEDMIX_DEST        Sample Editor/Mix/Dest. Level
  299. SMPEDMIX_SOURCE        Sample Editor/Mix/Source Level
  300. SmpEdPitch        Sample Editor/Pitch
  301. SMPEDPITCHCHG_ANTIALIAS    Sample Editor/Change Pitch/Antialias
  302. SMPEDPITCHCHG_DEST    Sample Editor/Change Pitch/Dest.
  303. SMPEDPITCHCHG_SOURCE    Sample Editor/Change Pitch/Source
  304. SmpEdPitchInHz        Sample Editor/Settings Menu/Pitch in Hz
  305. SmpEdPixelDisp        Sample Editor/Disp. Settings/Pixel
  306. SMPEDVOLCHG_END        Sample Editor/Change Volume/End
  307. SMPEDVOLCHG_START    Sample Editor/Change Volume/Start
  308. SmpEdVolClip        Sample Editor/Change Volume/Check Clip
  309. SmpEdZoomRngCent    Sample Editor/Disp. Settings/Center Zoom...
  310. SMPED_LOOPPOINT        Sample Editor/Loop Point
  311. SPACE            Main Control/Space
  312. SpaceIsDel        Keyboard Options/Space = DEL
  313. SpaceVal        Keyboard Options/Space Value
  314. SPREADVAL        Spread Notes/Width
  315. TempoOpChangeCmds    Tempo Op/Change Commands
  316. Toccata_LevelDisp    Toccata Capture/Level Display
  317. TRANSPOSE_INSTSLOTS    Transpose/Instrument Slots
  318. TransposeOutOfRange    Transpose/Out-of-range Notes
  319. UseMixing_MMD        Misc. Options/Use Mixing (MMD)
  320. UseMixing_Tracker    Misc. Options/Use Mixing (Tracker mods)
  321. WarnDiskFull        Misc. Options/Warn if Disk Full
  322. XPKmethod        (don't use)
  323.  
  324. ############################################################################
  325. SECTION:    VE    (Version)
  326. ############################################################################
  327.  
  328. Command:    VE_OCTAMED
  329. Purpose:    Returns OctaMED version number.
  330. Result:        Version number, e.g. "6.0".
  331.  
  332.  
  333. Command:    VE_OCTAMEDREXX
  334. Purpose:    Returns the version number of OctaMED ARexx implementation.
  335.         This is an integral number which will be lifted always when
  336.         new commands/options have been added to OctaMED. It will
  337.         always change by one, no matter how big or small changes
  338.         have occurred since the last version.
  339. Result:        A number, e.g. 1, 2, 3...
  340.  
  341. ############################################################################
  342. SECTION:    WI    (Window)
  343. ############################################################################
  344.  
  345. Command:    WI_ACTIVATE WINDOW/A
  346. Purpose:    Activates the specified window. See above for a list of
  347.         supported names.
  348. RC:        In case of invalid window name.
  349.  
  350.  
  351. Command:    WI_CHANGEBOX WINDOW/A,X/N,Y/N,W=WIDTH/N,H=HEIGHT/N
  352. Purpose:    Change the position, width and/or height of a window.
  353.         Dimensions can be changed only if the window has a
  354.         sizing gadget.
  355. RC:        In case of invalid window name.
  356.  
  357.  
  358. Command:    WI_CLOSE WINDOW/A
  359. Purpose:    Close a window.
  360. RC:        In case of invalid window name.
  361.  
  362.  
  363. Command:    WI_ISOPEN WINDOW/A
  364. Purpose:    Tests if a specified window is currently open.
  365. Result:        0 = closed
  366.         non-zero = open
  367. RC:        In case of invalid window name.
  368.  
  369.  
  370. Command:    WI_OCTAMEDTOBACK
  371. Purpose:    Puts the OctaMED screen to the back.
  372.  
  373.  
  374. Command:    WI_OCTAMEDTOFRONT
  375. Purpose:    Brings the OctaMED screen to the front.
  376.  
  377.  
  378. Command:    WI_OPEN WINDOW/A
  379. Purpose:    Open a window. See above for a list of supported names.
  380. RC:        In case of error or invalid window name.
  381. Example:    WI_OPEN SAMPLEEDITOR
  382.  
  383.  
  384. Command:    WI_OPENSHELL
  385. Purpose:    Opens a new command shell window. Note that there can be
  386.         several shells open at a time!
  387.  
  388.  
  389. Command:    WI_REQUEST BODYTEXT/A,GADGETTEXT/A
  390. Purpose:    Displays a requester with one or more gadgets.
  391.         (Remember to quote the strings twice.) GADGETTEXT
  392.         specifies the gadget labels, separated by "|".
  393. Result:        0 for the rightmost choice,
  394.         1, 2, 3... for other choices (starting from left)
  395. Example:    'WI_REQUEST "Format hard disk?" '"Yes|Don''t know|No"'
  396.         Returns: 1 = Yes, 2 = Don't know, 0 = No
  397. Note:        A failure to bring up the requester (out of memory) will
  398.         return 0. Don't forget the style guide recommendation of
  399.         placing the safest choice to the right!
  400.  
  401.  
  402. Command:    WI_SHOWSTRING MESSAGE/F
  403. Purpose:    Displays a message on OctaMED's title bar. If no
  404.         message is specified, resets the title bar to its
  405.         default state.
  406.  
  407.  
  408. Command:    WI_TOBACK WINDOW/A
  409. Purpose:    Moves the specified window to back of all other windows.
  410. RC:        In case of invalid window name.
  411.  
  412.  
  413. Command:    WI_TOFRONT WINDOW/A
  414. Purpose:    Moves the specified window to front of all other windows.
  415. RC:        In case of invalid window name.
  416.  
  417.  
  418. Command:    WI_WBENCHTOFRONT
  419. Version:    V2
  420. Purpose:    Brings the Workbench screen to the front.
  421.  
  422.  
  423. Command:    WI_ZIP WINDOW/A
  424. Purpose:    Zooms or unzooms the specified window.
  425. RC:        In case of invalid window name.
  426.  
  427. ############################################################################
  428. SECTION:    PL    (Playing)
  429. ############################################################################
  430.  
  431. Command:    PL_CONTBLOCK
  432. Purpose:    Play block (continue from current position).
  433.  
  434.  
  435. Command:    PL_CONTSONG
  436. Purpose:    Play song (continue from current position).
  437.  
  438.  
  439. Command:    PL_GETSTATE
  440. Purpose:    Get player's current state.
  441. Result:        One of the following strings:
  442.         STOPPED
  443.         PLAYSONG
  444.         PLAYBLOCK
  445.  
  446.  
  447. Command:    PL_JUMPTOTIMERZERO
  448. Purpose:    Jumps to the position where the timer was last
  449.         reset.
  450.  
  451.  
  452. Command:    PL_NEXTALPHAKEYCHANGESINSTR
  453. Purpose:    To implement the "alpha-enter" facility of the
  454.         instrument keypad map 2. Probably never useful
  455.         for any other purpose.
  456.  
  457.  
  458. Command:    PL_PLAYBLOCK
  459. Purpose:    Play block (from the beginning).
  460.  
  461.  
  462. Command:    PL_PLAYSONG
  463. Purpose:    Play song (from the beginning).
  464.  
  465.  
  466. Command:    PL_PLAYSTATECOMMAND CMD,ELSE
  467. Purpose:    Performs one of two possible OctaMED commands,
  468.         depending on the current playing state. If
  469.         currently playing the song or a block, command
  470.         CMD is executed, otherwise ELSE.
  471.  
  472.  
  473. Command:    PL_RESETMIDI
  474. Purpose:    Resets MIDI pitchbenders, modulation wheels and
  475.         instrument presets when they are used.
  476.  
  477.  
  478. Command:    PL_RESETTIMER
  479. Purpose:    Resets the play timer.
  480.  
  481.  
  482. Command:    PL_STOP
  483. Purpose:    Stop playing.
  484.  
  485. ############################################################################
  486. SECTION:    IN    (Instrument)
  487. ############################################################################
  488.  
  489. Command:    IN_FLUSH CURR=CURRENT/S,ALL/S,UN=UNUSED/S
  490. Purpose:    Flush one or more instruments.
  491.         CURR (default) flushes only the current instrument.
  492.         ALL flushes all instruments.
  493.         UNUSED flushes all unused instruments.
  494.  
  495.  
  496. Command:    IN_GETFINETUNE
  497. Result:        Finetune value (-8 - 7).
  498.  
  499.  
  500. Command:    IN_GETHOLD
  501. Result:        Hold value.
  502.  
  503.  
  504. Command:    IN_GETDECAY
  505. Result:        Decay value.
  506.  
  507.  
  508. Command:    IN_GETDISABLE
  509. Version:    V2
  510. Result:        Get instrument's disable state.
  511.  
  512.  
  513. Command:    IN_GETDEFAULTPITCH
  514. Result:        Instrument's default pitch (note number, 0 = none).
  515.  
  516.  
  517. Command:    IN_GETEXTENDEDPRESET
  518. Result:        0 = No extended preset
  519.         1 = Extended preset.
  520.  
  521.  
  522. Command:    IN_GETLOOPPINGPONG
  523. Version:    V2
  524. Result:        Get instrument's loop ping-pong state.
  525.  
  526.  
  527. Command:    IN_GETMIDICHANNEL
  528. Result:        Instrument's MIDI channel (1 - 16, 0 = none).
  529.  
  530.  
  531. Command:    IN_GETMIDIPRESET
  532. Result:        Instrument's MIDI preset.
  533.  
  534.  
  535. Command:    IN_GETNAME
  536. Result:        String (instrument name).
  537.  
  538.  
  539. Command:    IN_GETNUMBER
  540. Purpose:    Get the number of currently selected instrument.
  541. Result:        Instrument number (1 - 63).
  542.  
  543.  
  544. Command:    IN_GETNUMOCTAVES
  545. Result:        The number of octaves in this sample (1 - 7). Returns 0 if
  546.         the instrument is not of type SAMPLE.
  547.  
  548.  
  549. Command:    IN_GETOUTPUT
  550. Result:        "AMIGA", "AURA" or "TOCCATA" depending on the instrument's
  551.         selected output device.
  552.  
  553.  
  554. Command:    IN_GETSUPPRESSNOTEOFF
  555. Result:        0 = Don't suppress Note Off
  556.         1 = Suppress Note Off.
  557.  
  558.  
  559. Command:    IN_GETTRANSPOSE
  560. Result:        Transpose value (-128 - 127).
  561.  
  562.  
  563. Command:    IN_GETTYPE
  564. Purpose:    Returns instrument's type.
  565. Result:        One of the following strings is returned:
  566.         EMPTY        (no instrument in this slot)
  567.         SAMPLE
  568.         SYNTH
  569.         HYBRID
  570.         EXTSAMPLE
  571.         SAMPLE16
  572.         UNKNOWN        (probably won't appear)
  573. Note:        More types may be added in future versions.
  574.  
  575.  
  576. Command:    IN_GETVOLUME
  577. Result:        Instrument's volume (0 - 64).
  578.  
  579.  
  580. Command:    IN_ISSLOTUSED SL=SLOT/N
  581. Purpose:    Tells if the specified instrument slot (1 - 63) is free
  582.         or not.
  583. Result:        1 = slot used, 0 = slot free.
  584. Note:        MIDI instruments generally have the slot unused. The slot
  585.         might belong to a MIDI instrument even if this returns 0.
  586.  
  587.  
  588. Command:    IN_ISSTEREO
  589. Purpose:    Check the stereo/mono state of the current sample:
  590. Result:        1 = current sample is stereo
  591.         0 = current sample is mono or no sample exists
  592.  
  593.  
  594. Command:    IN_LOAD NAME/A,NOSL=NOSLIST/S,CN=COMPARENAMES/S
  595. Purpose:    Loads a specified instrument from disk.
  596.         NAME = instrument name.
  597.         NOSLIST = don't search from the sample list. Usually
  598.         a full path name should be specified in this case.
  599.         COMPARENAMES = don't load if NAME and the name of the
  600.         current instrument are equal. Useful for triggering
  601.         sample changes from the song.
  602.  
  603.  
  604. Command:    IN_LOADREQ
  605. Purpose:    Opens the Load Instruments requester.
  606.  
  607.  
  608. Command:    IN_MONO
  609. Purpose:    Convert this sample to mono.
  610. RC:        If not enough memory/sample already mono/no sample
  611.  
  612.  
  613. Command:    IN_MOVESAMPLESTOCHIP
  614. Version:    V2
  615. Purpose:    Moves all samples to Chip RAM.
  616.  
  617.  
  618. Command:    IN_MOVESAMPLESTOFAST
  619. Version:    V2
  620. Purpose:    Moves all samples to Fast RAM.
  621.  
  622.  
  623. Command:    IN_SAVE NAME,RAW/S,EIGHTSVX/S,MAUD/S,AIFF/S,WAVE/S
  624. Purpose:    Saves the sample. NAME should be a full path name.
  625.         Defaults to the EIGHTSVX format (uses MAUD for 16-bit
  626.         samples, though).
  627.  
  628.  
  629. Command:    IN_SAVEREQ RAW/S,EIGHTSVX/S,MAUD/S,AIFF/S,WAVE/S
  630. Purpose:    Opens the Save Instrument requester for saving in the
  631.         specified format (default: EIGHTSVX).
  632.  
  633.  
  634. Command:    IN_SELECT INS/N,NEXT/S,PREV/S,LAST/S,LU=LASTUSED/S,
  635.         NEXTFREE/S,PREVFREE/S,MINUS16/S,PLUS16/S,
  636.         PREVFOUND=NEARCURSOR/S,SWITCH/S
  637. Purpose:    Changes the number of the current instrument:
  638.         INS 3        goto instrument 3 (accepted values are 1-63,
  639.                 note: these are decimal numbers! Don't use
  640.                 values like 0G or 1V that OctaMED displays.
  641.         NEXT        next instrument
  642.         PREV        previous instrument
  643.         LAST        last instrument
  644.         LASTUSED    last used instrument
  645.         NEXTFREE    next free instrument slot
  646.         PREVFREE    previous free instrument slot
  647.         MINUS16        subtract 16 from current sample number
  648.         PLUS16        add 16 to current sample number
  649.         PREVFOUND/    selects the last instrument found on this
  650.           NEARCURSOR    track (above the cursor)
  651.         SWITCH        "switches" the first instr. number between
  652.                 1 and 0
  653.  
  654.  
  655. Command:    IN_SETDEFAULTPITCH NO=NOTE/N/A
  656. Purpose:    Set instrument's default pitch. (0 = none, 1 = C-1 etc.)
  657.  
  658.  
  659. Command:    IN_SETDISABLE ON/S,OFF/S,TOGGLE/S
  660. Version:    V2
  661. Purpose:    Set instrument's disable state
  662.  
  663.  
  664. Command:    IN_SETFINETUNE FT=FINETUNE/N/A
  665. Purpose:    Sets the finetune of the current instrument. Allowed
  666.         values are -8 - 7.
  667.  
  668.  
  669. Command:    IN_SETHOLDDECAY H=HOLD/N,D=DECAY/N
  670. Purpose:    Sets hold and/or decay values of the current instrument.
  671.  
  672.  
  673. Command:    IN_SETLOOPPINGPONG ON/S,OFF/S,TOGGLE/S
  674. Version:    V2
  675. Purpose:    Set instrument's loop ping-pong state.
  676.  
  677.  
  678. Command:    IN_SETMIDICHANNEL CH=CHANNEL/N/A
  679. Purpose:    Set instrument's MIDI channel (0 - 16), 0 = none.
  680.  
  681.  
  682. Command:    IN_SETMIDIPRESET PR=PRESET/N/A,EXT=EXTENDED/S
  683. Purpose:    Set instrument's preset. if the EXTENDED switch
  684.         is set, extended preset is used, otherwise it's
  685.         cleared.
  686.  
  687.  
  688. Command:    IN_SETNAME NAME/A
  689. Purpose:    Set the name of the current instrument. (Maximum length is
  690.         39 characters.)
  691.  
  692.  
  693. Command:    IN_SETNUMOCTAVES OCTS/N/A
  694. Purpose:    Set number of octaves (1 - 7). Only valid if the instrument
  695.         type is SAMPLE.
  696.  
  697.  
  698. Command:    IN_SETOUTPUT AMIGA/S,AURA/S,TOCCATA/S
  699. Purpose:    Sets instrument's output device.
  700.  
  701.  
  702. Command:    IN_SETSUPPRESSNOTEOFF ON/S,OFF/S,TOGGLE/S
  703. Purpose:    Set/clears/toggles instrument's Note Off suppress
  704.         property.
  705.  
  706.  
  707. Command:    IN_SETTRANSPOSE TR=TRANSPOSE/N/A
  708. Purpose:    Sets the transpose of the current instrument. Allowed
  709.         values are -128 - 127.
  710.  
  711.  
  712. Command:    IN_SETTYPE SAMPLE/S,EXTSAMPLE/S,SYNTHETIC/S,HYBRID/S,SAMPLE16/S
  713. Purpose:    Changes instrument type.
  714. Note:        Not all type changes can be carried out. The following
  715.         changes can be used:
  716.         SAMPLE <-> EXTSAMPLE
  717.         (EXT)SAMPLE <-> SAMPLE16
  718.         (EXT)SAMPLE <-> HYBRID
  719.         (EXT)SAMPLE(16) -> SYNTHETIC    (sample discarded)
  720.         SYNTHETIC -> SAMPLE        (synthsound discarded)
  721.  
  722. Command:    IN_SETVOLUME VOL/N,INCREASE/S,DECREASE/S,INCRBY/K/N,
  723.         DECRBY/K/N,MAX/K/N,MIN/K/N
  724. Version:    V1; V2 for INCRBY, DECRBY, MAX and MIN
  725. Purpose:    Set instrument's volume (0 - 64), or optionally INCREASE
  726.         or DECREASE it by one. INCRBY and DECRBY allow incrementation
  727.         or decrementation in steps larger than one. MAX and MIN
  728.         keywords limit the maximum or minimum value that can
  729.         be reached with increment/decrement.
  730.  
  731.  
  732. Command:    IN_STEREO
  733. Purpose:    Convert this sample to stereo.
  734. RC:        If not enough memory/sample already stereo/no sample
  735.  
  736.  
  737. Command:    IN_SWAPINSTRUMENTS SLOT1/N/A,SLOT2/N/A
  738. Purpose:    Swaps two instruments. Instrument numbers are given.
  739.         It only exchanges the instruments, song data is not
  740.         modified.
  741.  
  742. ############################################################################
  743. SECTION:    SA    (Sample editor)
  744. ############################################################################
  745.  
  746. Command:    SA_ADJUSTYRANGE S=SHIFT/N/A
  747. Purpose:    Adjusts the selected range in vertical direction.
  748.         (See Adjust Y -function of sample editor)
  749.         SHIFT is an 8-bit adjust value (although the
  750.         adjustment will be made in 16 bits, 8-bit resolution
  751.         was considered sufficient for this parameter).
  752.  
  753.  
  754. Command:    SA_BOOST AVG=AVERAGING/N,D=DISTANCE/N
  755. Purpose:    Will boost the selected range (see Filter/Boost
  756.         window of the sample editor). If either or both
  757.         values are not supplied, the values in the F/B
  758.         window will be used.
  759.  
  760.  
  761. Command:    SA_BUFFERTOSAMPLE
  762. Purpose:    Copies the contents of the buffer to the sample.
  763.         The old sample will be discarded.
  764.  
  765.  
  766. Command:    SA_CENTRALIZESAMPLE
  767. Purpose:    Centralizes the entire sample in vertical direction.
  768.         Similar to SA_ADJUSTYRANGE, but affects the entire
  769.         sample and automatically calculates a suitable value
  770.         for centralizing the sample.
  771.  
  772.  
  773. Command:    SA_CHANGEPITCH S=SOURCE/N,D=DEST/N,AA=ANTIALIAS/S
  774. Purpose:    Changes the pitch of the current sample. SOURCE and
  775.         DEST are period values. If they are not supplied,
  776.         values in the Change Pitch window will be used.
  777.         ANTIALIAS turns antialiasing on (otherwise off).
  778.  
  779.  
  780. Command:    SA_CHANGEVOL S=START/N,E=END/N,CLIP/S,NOCLIP/S
  781. Purpose:    Changes the volume of the selected range. START and
  782.         END are specified in percents, as in the Change Volume
  783.         window. CLIP specifies clipping, NOCLIP makes OctaMED
  784.         avoid clipping, otherwise the setting in the Ch. Volume
  785.         window will be used. To maximize the volume, you can
  786.         use high values with NOCLIP, e.g.:
  787.         SA_CHANGEVOL 999 999 NOCLIP
  788.  
  789.  
  790. Command:    SA_CHANGESIZE SIZE/N/A,C=CLEAR/S,RE=RETAINATEND/S,REQ/S
  791. Purpose:    Changes the size of the current sample. By default,
  792.         this function retains the existing sample at the
  793.         beginning. If CLEAR is specified, the entire sample
  794.         is cleared, if RETAINATEND is specified, the existing
  795.         sample will be retained at the end. Finally, REQ
  796.         instructs OctaMED to ask the user if the existing
  797.         sample should be kept.
  798.  
  799.  
  800. Command:    SA_CHOPRANGE
  801. Purpose:    Chops the selected range.
  802.  
  803.  
  804. Command:    SA_CLEARRANGE
  805. Purpose:    Clears the selected range.
  806.  
  807.  
  808. Command:    SA_COPYRANGE
  809. Purpose:    Copies the selected range to the copy buffer.
  810.  
  811.  
  812. Command:    SA_CREATECHORD N=NOTES/N/M/A,FV=FULLVOL/S,NFV=NOFULLVOL/S,
  813.         ET=ERASETRAIL/S,NET=NOERASETRAIL/S
  814. Purpose:    Creates a chord of specified notes. NOTES define the note
  815.         numbers of the chord (up to 4 notes can be given).
  816.         FULLVOL/NOFULLVOL override the Full Volume switch of the
  817.         Create Chord window. ERASETRAIL/NOERASETRAIL override the
  818.         Erase Trailing Notes switch.
  819. Example:    Create a major chord of three notes:
  820.         SA_CREATECHORD 1 5 8
  821.  
  822.  
  823. Command:    SA_CREATENOISE L=LEVEL/N
  824. Purpose:    Adds noise to the selected range.
  825.  
  826.  
  827. Command:    SA_CUTRANGE
  828. Purpose:    Cuts the selected range.
  829.  
  830.  
  831. Command:    SA_DELRANGE
  832. Purpose:    Erases the selected range.
  833.  
  834.  
  835. Command:    SA_ECHO NUM/N,R=RATE/N,VD=VOLDECR/N
  836. Purpose:    Creates echoes. See the Echo Window documents for the
  837.         purpose of the parameters.
  838.  
  839.  
  840. Command:    SA_ERASE TS=TOSTART/S,TE=TOEND/S,BL=BEFORELOOP/S,
  841.         AL=AFTERLOOP/S
  842. Purpose:    Erases a part of the current sample.
  843.         TOSTART    erases from the beginning of the range to the
  844.             start of the sample.
  845.         TOEND    (default) erases from the end of the range to
  846.             the end of the sample.
  847.         BEFORELOOP    erases from the beginning of the sample
  848.                 to the beginning of the loop.
  849.         AFTERLOOP    erases from the end of the loop to the
  850.                 end of the sample.
  851.  
  852.  
  853. Command:    SA_FILTER AVG=AVERAGING/N,D=DISTANCE/N
  854. Purpose:    Filters the selected range. See the Filter/Boost window
  855.         documents.
  856.  
  857.  
  858. Command:    SA_GETBUFFERLENGTH
  859. Purpose:    Get the size of the copy buffer.
  860. Result:        Copy buffer size. (0 if the buffer is empty.)
  861.  
  862.  
  863. Command:    SA_GETDISPLAYCHANNEL
  864. Purpose:    Returns the currently displayed channel of a stereo
  865.         sample.
  866. Result:        String, one of the following:
  867.         LEFT    (also returned for mono samples)
  868.         RIGHT
  869.         BOTH
  870. RC:        If no sample in memory.
  871.  
  872.  
  873. Command:    SA_GETDISPLAYSIZE
  874. Result:        The size of the currently displayed part of the sample.
  875. RC:        If no sample in memory.
  876.  
  877.  
  878. Command:    SA_GETDISPLAYSTART
  879. Result:        Position of the beginning of the display (from the
  880.         beginning of the sample).
  881. RC:        If no sample in memory.
  882.  
  883.  
  884. Command:    SA_GETLOOPLENGTH
  885. Result:        Length of the loop.
  886.  
  887.  
  888. Command:    SA_GETLOOPSTART
  889. Result:        Beginning of the loop.
  890.  
  891.  
  892. Command:    SA_GETLOOPSTATE
  893. Result:        1 = loop active, 0 = loop not active
  894.  
  895.  
  896. Command:    SA_GETRANGEEND
  897. Result:        Returns the range end position.
  898. RC:        If no sample in memory.
  899.  
  900.  
  901. Command:    SA_GETRANGESTART
  902. Result:        Returns the range start position.
  903. RC:        If no sample in memory.
  904.  
  905.  
  906. Command:    SA_GETSAMPLE O=OFFSET/N/A
  907. Purpose:    For actual editing of the sample waveform.
  908.         OFFSET is the position from the beginning of the
  909.         sample. Allowed values are 0 - (SAMPLELENGTH-1).
  910. Result:        Returns the sample value at the given position.
  911.         This number is always in 16-bit range (regardless
  912.         of the actual sample resolution), -32768 being the
  913.         lowest, 32767 the highest possible value. (I.e.
  914.         signed arithmetic must be used.)
  915. RC:        If no sample in memory.
  916.  
  917.  
  918. Command:    SA_GETSAMPLELENGTH
  919. Result:        Returns the length of the current sample.
  920. RC:        If no sample in memory.
  921.  
  922.  
  923. Command:    SA_INVERTRANGE
  924. Purpose:    Flips the selected range upside down.
  925.  
  926.  
  927. Command:    SA_MIX SL=SOURCELEVEL/N,DL=DESTLEVEL/N
  928. Purpose:    Mixes the copy buffer with the selected range. See
  929.         Mix Window documentation.
  930.  
  931.  
  932. Command:    SA_MONITOR AS=ALLOWSAMPLING/S
  933. Purpose:    Activates the sampler monitor display. It can be
  934.         deactivated only by the user. If ALLOWSAMPLING is
  935.         specified, the text "LMB = start sampling - RMB = cancel"
  936.         will appear, and sampling is allowed.
  937.  
  938.  
  939. Command:    SA_PASTE OW=OVERWRITE/S
  940. Purpose:    Pastes the buffer to the current position. If OVERWRITE
  941.         is specified, the buffer contents will overwrite existing
  942.         data instead of inserting.
  943.  
  944.  
  945. Command:    SA_PLAY D=DISPLAY/S,R=RANGE/S,CB=CBUFF/S,LO=LOOP/S,
  946.         TU=TUNING/S
  947. Purpose:    Plays the specified part of the sample:
  948.         DISPLAY plays the display.
  949.         RANGE plays the range.
  950.         CBUFF plays the copy buffer.
  951.         LOOP plays the loop.
  952.         TUNING plays the tuning tone.
  953.  
  954.  
  955. Command:    SA_RANGE S=START/N,E=END/N,A=ALL/S,LO=LOOP/S
  956. Purpose:    Sets the range. START/END are absolute offsets in the
  957.         sample, ALL selects the entire sample, LOOP selects the
  958.         loop.
  959.  
  960.  
  961. Command:    SA_RANGETOSYNTHED
  962. Purpose:    Copies the range to synth editor wave buffer.
  963.  
  964.  
  965. Command:    SA_REFRESH
  966. Purpose:    Refreshes the sample display (see SA_SETSAMPLE).
  967.  
  968.  
  969. Command:    SA_REMUNUSEDSPACE
  970. Purpose:    Removes the unused space from both ends of the sample.
  971.  
  972.  
  973. Command:    SA_REVERSERANGE
  974. Purpose:    Reverses the selected range.
  975.  
  976.  
  977. Command:    SA_SAMPLETOBUFFER
  978. Purpose:    Copies the whole sample to the copy buffer.
  979.  
  980.  
  981. Command:    SA_SCROLLDISPLAY L=LEFT/S,R=RIGHT/S,STEP/N
  982. Purpose:    Scrolls the sample editor display LEFT or RIGHT. By
  983.         default, one step is 50 % of the display size, but
  984.         you can override it by specifying STEP (it's a
  985.         percentage - a value of 100 scrolls one screenful.)
  986.  
  987.  
  988. Command:    SA_SETDISPLAYCHANNEL BOTH/S,L=LEFT/S,R=RIGHT/S
  989. Purpose:    Changes the display mode of a stereo sample.
  990.  
  991.  
  992. Command:    SA_SETLOOP S=START/N,L=LENGTH/N,KE=KEEPEND/S,R=RANGE/S,
  993.         D=DISPLAY/S,SA=SAMPLE/S
  994. Purpose:    Sets the loop. START/LENGTH specify the absolute positions.
  995.         If only START is specified, the length remains constant,
  996.         unless KEEPEND is set (which keeps the end position intact).
  997.         RANGE sets the loop to range, DISPLAY to display, SAMPLE
  998.         to the whole sample.
  999.  
  1000.  
  1001. Command:    SA_SETLOOPSTATE ON/S,OFF/S
  1002. Purpose:    Turns the loop on or off.
  1003.  
  1004.  
  1005. Command:    SA_SETSAMPLE O=OFFSET/N/A,V=VALUE/N/A
  1006. Purpose:    For editing the actual sample waveform. Sets the sample data
  1007.         at the specified position (OFFSET may be 0 - SAMPLELENGTH-1).
  1008.         The VALUE is a 16-bit signed number, regardless of the actual
  1009.         resolution of the sample. -32768 is the lowest, 32767 is the
  1010.         highest allowed value.
  1011. Note:        For sake of speed, this command does not refresh the
  1012.         displayed waveform. When you are done with modifying the
  1013.         sample, call SA_REFRESH to refresh the display.
  1014. RC:        If no sample in memory, or if invalid OFFSET is given.
  1015.  
  1016.  
  1017. Command:    SA_SHOW S=START/N,L=LENGTH/N,R=RANGE/S,A=ALL/S,LO=LOOP/S
  1018. Purpose:    Sets the display to the specified part of the sample.
  1019.         START/LENGTH specify the display area in an absolute way.
  1020.         RANGE shows the range, ALL shows the whole sample, LOOP
  1021.         shows the loop.
  1022.  
  1023.  
  1024. Command:    SA_SWAPBUFFERWITHSAMPLE
  1025. Purpose:    Swaps the copy buffer with the sample. This call doesn't
  1026.         involve any copying or memory allocations, so it's pretty
  1027.         fast.
  1028.  
  1029.  
  1030. Command:    SA_ZOOM IN/S,OUT/S
  1031. Purpose:    Halves or doubles the size of the display (i.e. zooms IN or
  1032.         OUT).
  1033.  
  1034. ############################################################################
  1035. SECTION:    SG    (Song)
  1036. ############################################################################
  1037.  
  1038. Command:    SG_CLEARALLSONGS
  1039. Purpose:    Clears all songs. Doesn't ask any confirmation.
  1040.  
  1041.  
  1042. Command:    SG_CLEARCURRENTSONG
  1043. Purpose:    Clears the current song.
  1044.  
  1045.  
  1046. Command:    SG_DELETESONG CURRENT=HERE/S,LAST/S
  1047. Purpose:    Deletes either the current (CURRENT, default) or the LAST
  1048.         song of the multi-module. If there's only one song, this
  1049.         command does nothing.
  1050.  
  1051.  
  1052. Command:    SG_DISCARDANNOTEXT
  1053. Purpose:    Discards the long annotation text, if there's any.
  1054.  
  1055.  
  1056. Command:    SG_GETANNOSTRING
  1057. Result:        Returns the current (short) annotation string.
  1058.  
  1059.  
  1060. Command:    SG_FORGETMODIFICATIONS
  1061. Purpose:    This command will clear OctaMED's internal "modified"-flag.
  1062.         (See also SG_ISMODIFIED.) After this command, OctaMED thinks
  1063.         there have been no changes since the song was last saved.
  1064.         Use with care!
  1065.  
  1066.  
  1067. Command:    SG_GETCHANNELMODE
  1068. Result:        Returns the current channel mode: 4 - 8, or 9 for mixing
  1069.         (V2).
  1070.  
  1071.  
  1072. Command:    SG_GETCURRENTSONGNUMBER
  1073. Result:        Returns the number of the current song (1 - NUMBEROFSONGS).
  1074.  
  1075.  
  1076. Command:    SG_GETFILESIZE MMD2/S,MMD1/S,MMD0/S,SMF0/S,MULTIMOD/S,
  1077.         CURRSONG/S
  1078. Purpose:    Calculates and returns the unpacked file size of the
  1079.         multi-module (default) or the current song in desired file
  1080.         format.
  1081. Result:        File size in bytes.
  1082.  
  1083.  
  1084. Command:    SG_GETFILTER
  1085. Result:        Returns the state of the hardware audio filter (1 or 0).
  1086.  
  1087.  
  1088. Command:    SG_GETHQ
  1089. Result:        Returns the state of the HQ switch (1 or 0).
  1090.  
  1091.  
  1092. Command:    SG_GETMASTERVOL
  1093. Result:        Returns the current master volume (1 - 64).
  1094.  
  1095.  
  1096. Command:    SG_GETNAME
  1097. Result:        Returns the name of the current song (string).
  1098.  
  1099.  
  1100. Command:    SG_GETNUMBEROFSONGS
  1101. Result:        Returns the number of songs.
  1102.  
  1103.  
  1104. Command:    SG_GETPLAYTRANSPOSE
  1105. Result:        Returns the current play transpose value.
  1106.  
  1107.  
  1108. Command:    SG_GETSLIDEMODE
  1109. Result:        Returns the slide mode. Either 'NO1ST' or 'STD'.
  1110.  
  1111.  
  1112. Command:    SG_GETTEMPO
  1113. Result:        Returns the main SPD or BPM tempo.
  1114.  
  1115.  
  1116. Command:    SG_GETTEMPOLPB
  1117. Result:        Returns the Lines per Beat value (only used in BPM mode).
  1118.  
  1119.  
  1120. Command:    SG_GETTEMPOMODE
  1121. Result:        Returns the current tempo mode (either 'SPD' or 'BPM').
  1122.  
  1123.  
  1124. Command:    SG_GETTEMPOTPL
  1125. Result:        Returns the Pulses per Line value (a.k.a. the secondary
  1126.         tempo).
  1127.  
  1128.  
  1129. Command:    SG_GETTRACKPAN TRACK/N/A
  1130. Version:    V2
  1131. Purpose:    Returns the track pan of TRACK (0 - 63).
  1132.  
  1133.  
  1134. Command:    SG_GETTRACKVOL TRACK/N/A
  1135. Result:        Returns the track volume (1 - 64) of the specified track
  1136.         (0 - 63).
  1137.  
  1138.  
  1139. Command:    SG_GETVOLMODE
  1140. Result:        Returns the current volume mode ('HEX' or 'DEC').
  1141.  
  1142.  
  1143. Command:    SG_GOTOSONG SONGNUM/N,NEXT/S,PREV/S,LAST/S,NEXTORAPPEND/S
  1144. Purpose:    Selects the song. SONGNUM is the number of the song.
  1145.         NEXT/PREV select the next or the previous song, and LAST
  1146.         selects the last song. NEXTORAPPEND is the same as NEXT,
  1147.         except if the last song is currently selected, a new one
  1148.         is created (with a requester).
  1149.  
  1150.  
  1151. Command:    SG_ISMODIFIED
  1152. Result:        Returns a non-zero value if the song has been modified
  1153.         since it's been loaded or saved. Otherwise returns 0.
  1154.  
  1155.  
  1156. Command:    SG_ISTRACKON TRK=TRACK/N
  1157. Result:        Returns the on/off (1/0) state of the specified track.
  1158.         If track not specified, current track is assumed.
  1159.  
  1160.  
  1161. Command:    SG_ISTRACKSELECTED TRK=TRACK/N
  1162. Result:        Returns the selected/deselected (1/0) state of the
  1163.         specified track.
  1164.         If track not specified, current track is assumed.
  1165.  
  1166.  
  1167. Command:    SG_LOAD NAME,FORCE/S
  1168. Purpose:    Loads a song/module into memory. If NAME is not specified,
  1169.         the Load Song file requester appears. This command returns
  1170.         an error, if the song has been modified, unless FORCE is
  1171.         set.
  1172. RC:        Fails, if song modified and FORCE not set.
  1173.  
  1174.  
  1175. Command:    SG_LOADANNOTEXT NAME
  1176. Purpose:    Loads the specified text file and binds it to the current
  1177.         module. (See Song Annotation Window documents.) If NAME is
  1178.         not specified, a file requester appears.
  1179.  
  1180.  
  1181. Command:    SG_MIXECHO OFF/S,ECHO/S,CROSSECHO/S,RATE/K/N,DEPTH/K/N
  1182. Version:    V2
  1183. Purpose:    Sets the Echo parameters. OFF/ECHO/CROSSECHO select the
  1184.         echo mode. RATE sets the echo rate in milliseconds.
  1185.         DEPTH sets the echo depth. Following values are used for
  1186.         DEPTH:
  1187.         1 = 50 %, 2 = 25 %, 3 = 12.5 %, 4 = 5.75 %, 5 = 2.88 %,
  1188.         6 = 1.44 %
  1189. Note:        These settings will take effect not until playing has
  1190.         been restarted.
  1191.  
  1192.  
  1193. Command:    SG_MIXPARAMS MONO/S,STEREO/S,MAXCH/K/N,VOLADJ/K/N,
  1194.         FREEPAN/S,NOFREEPAN/S
  1195. Version:    V2
  1196. Purpose:    Sets the song's mixing parameters.
  1197.         MONO/STEREO sets the mono/stereo mode.
  1198.         MAXCH sets Max. # of Channels used for mixing (1 - 64).
  1199.         VOLADJ sets the Volume Adjust value (1 - 800).
  1200.         FREEPAN/NOFREEPAN turn free panning on/off.
  1201. Note:        These settings will take effect not until playing has
  1202.         been restarted.
  1203.  
  1204.  
  1205. Command:    SG_MIXSTEREOSEP SEP/N
  1206. Version:    V2
  1207. Purpose:    Sets the stereo separation (between -4 and 4).
  1208.  
  1209.  
  1210. Command:    SG_NEWSONG HERE/S,LAST/S
  1211. Purpose:    Creates a new song either at the current position (HERE) or
  1212.         after the last song (LAST, default).
  1213.  
  1214.  
  1215. Command:    SG_SAVE NAME,FULLNAME/K,MMD2/S,MMD1/S,MMD0/S,SMF0/S,EXEC/S,
  1216.         MULTIMOD/S,CURRSONG/S
  1217. Purpose:    Saves the current song (CURRSONG) or multi-module (MULTIMOD,
  1218.         default) in the specified file format (MMD2, MMD1, MMD0, SMF0
  1219.         or EXEC). If NAME is specified, the file is saved relative
  1220.         to the currently used save path (see also SG_SETSAVEPATH).
  1221.         If you specify FULLNAME, you have to specify the entire path,
  1222.         which will replace the existing save path.
  1223.  
  1224.  
  1225. Command:    SG_SAVEANNOTEXT NAME
  1226. Purpose:    Saves the long annotation text (see Song Annotation Window)
  1227.         to a separate file. If NAME is not specified, a file
  1228.         requester appears.
  1229.  
  1230.  
  1231. Command:    SG_SETANNOSTRING STRING/F
  1232. Purpose:    Sets the (short) annotation string (Song Annotation Window).
  1233.         If no arguments appear, the string is cleared.
  1234.  
  1235.  
  1236. Command:    SG_SETCHANNELMODE MODE/N/A
  1237. Purpose:    Sets the channel mode. Valid values are 4 - 8 (V1). Value
  1238.         9 sets mixing mode (V2).
  1239.  
  1240.  
  1241. Command:    SG_SETFILTER ON/S,OFF/S
  1242. Purpose:    Sets the state of the hardware audio filter.
  1243.  
  1244.  
  1245. Command:    SG_SETHQ ON/S,OFF/S
  1246. Purpose:    Sets HQ on or off.
  1247.  
  1248.  
  1249. Command:    SG_SETMASTERVOL VOL/N,INCRBY/K/N,DECRBY/K/N,MAX/K/N,MIN/K/N
  1250. Version:    V1 (VOL obligatory); V2 for INCRBY, DECRBY, MAX and MIN
  1251. Purpose:    Sets the master volume. Allowed values are 1 - 64.
  1252.         Optionally, you may use INCRBY or DECRBY for incrementing
  1253.         or decrementing the value. MAX and MIN set the limits for
  1254.         this command (64 and 0 by default).
  1255.  
  1256.  
  1257. Command:    SG_SETNAME NAME/A/F
  1258. Purpose:    Sets the name of the current song.
  1259.  
  1260.  
  1261. Command:    SG_SETPLAYTRANSPOSE TRANSP/N/A
  1262. Purpose:    Sets play transpose (-12 - +12).
  1263.  
  1264.  
  1265. Command:    SG_SETSAVENAME NAME/A
  1266. Purpose:    Sets the default save file name of the current project.
  1267.         This is the file name that appears in the Save Options
  1268.         window. See also the next command.
  1269. Note:        This should only be used for setting the file name.
  1270.         Use the next command for the path.
  1271.  
  1272.  
  1273. Command:    SG_SETSAVEPATH PATH/A
  1274. Purpose:    Sets the default save file name and path of the current
  1275.         project. This is the file name/path that appears in the
  1276.         Save Options window. The path should be a full path
  1277.         specification of the directory where saved songs should
  1278.         be placed.
  1279.  
  1280.  
  1281. Command:    SG_SETSLIDEMODE STD/S,NO1ST/S
  1282. Purpose:    Sets the slide mode.
  1283.  
  1284.  
  1285. Command:    SG_SETTEMPO BPM=SPD/N,TPL/N,LPB/N
  1286. Purpose:    Sets the current tempo. BPM/SPD sets the main tempo,
  1287.         TPL sets the secondary tempo (ticks per line), and LPB
  1288.         sets Lines per Beat (only in BPM mode).
  1289.  
  1290.  
  1291. Command:    SG_SETTEMPOMODE SPD/S,BPM/S
  1292. Purpose:    Sets the tempo mode. Nowadays BPM is recommended for
  1293.         general usage.
  1294.  
  1295.  
  1296. Command:    SG_SETTRACKPAN TRACK/N/A,PAN/N/A
  1297. Version:    V2
  1298. Purpose:    Sets the track pan of TRACK (0 - 63). PAN may be between
  1299.         -16 and 16.
  1300.  
  1301.  
  1302. Command:    SG_SETTRACKSTATE TRK=TRACK/N,ON/S,OFF/S,TOGGLE/S,SEL/S,
  1303.         DESEL/S,TOGGLESEL/S
  1304. Version:    V1; as of V2 TRACK is no longer compulsory (defaults to
  1305.         the current track)
  1306. Purpose:    Sets the state of the specified track. ON/OFF/TOGGLE
  1307.         affect the track's playing status. SEL/DESEL/TOGGLESEL
  1308.         affect the selected state of the track.
  1309.  
  1310.  
  1311. Command:    SG_SETTRACKSTATES ON/S,OFF/S
  1312. Purpose:    Sets all tracks ON or OFF.
  1313.  
  1314.  
  1315. Command:    SG_SETTRACKVOL TRACK/N/A,VOL/N/A
  1316. Purpose:    Sets the track volume of TRACK (0 - 63). VOL may be 1 - 64.
  1317.  
  1318.  
  1319. Command:    SG_SETVOLMODE DEC/S,HEX/S
  1320. Purpose:    Sets the volume mode (DECimal or HEX).
  1321.  
  1322.  
  1323. Command:    SG_SHOWFREEMEMORY
  1324. Purpose:    Displays the free memory on OctaMED's title bar. Used for
  1325.         Ctrl-F.
  1326.  
  1327.  
  1328. Command:    SG_TEMPO_DECREASE TPL/S
  1329. Purpose:    Mainly for OctaMED keyboard shortcuts. Decreases the main
  1330.         tempo, or if TPL set, the TPL value.
  1331.  
  1332.  
  1333. Command:    SG_TEMPO_INCREASE TPL/S
  1334. Purpose:    Mainly for OctaMED keyboard shortcuts. Increases the main
  1335.         tempo, or if TPL set, the TPL value.
  1336.  
  1337.  
  1338. Command:    SG_VOLCONVERT TOHEX/S,TODEC/S,REQ/S
  1339. Purpose:    Converts the volume commands of the song. TOHEX converts
  1340.         everything from decimal to hex, TODEC does the opposite.
  1341.         REQ asks the user.
  1342.  
  1343. ############################################################################
  1344. SECTION:    OP    (Options)
  1345. ############################################################################
  1346.  
  1347. Command:    OP_GET OPT/A
  1348. Purpose:    Returns the current value of the specified option. (See
  1349.         above for a list of options.) The values depend on the type
  1350.         of the object (i.e. gadget or menu) that is used to control
  1351.         the option. Generally, the following rules apply:
  1352.  
  1353.         Object type        Allowed values
  1354.         ~~~~~~~~~~~        ~~~~~~~~~~~~~~
  1355.         Checkbox or menu    0 = not checked
  1356.         items with toggling    1 = checked
  1357.         checkmarks.
  1358.  
  1359.         Cycle gadget        0 = first item (not necessarily the
  1360.                         default!)
  1361.                     X-1 = last item (where X = total
  1362.                         number of items the gadget has).
  1363.  
  1364.         Slider or integer    Same as the gadget's values.
  1365.         gadgets
  1366.  
  1367.         MX (Radio) gadget    0 = topmost item
  1368.                     X-1 = last item (X = total number of
  1369.                           items).
  1370. Result:        Option value.
  1371. RC:        10 if OPT is invalid (not recognized).
  1372.  
  1373.  
  1374. Command:    OP_GETKEYBOARDOCT
  1375. Purpose:    Returns the keyboard edit octaves currently in use.
  1376. Result:        A number: 0 = octaves 1+2, 1 = 2+3, 2 = 3+4 etc.
  1377. Note:        It really should return 1, 2,... for consistency with
  1378.         OP_SETKEYBOARDOCT, but this behaviour is retained due
  1379.         to compatibility reasons.
  1380.  
  1381. Command:    OP_LOADKEYBOARDSHORTCUTS NAME/A
  1382. Purpose:    Loads keyboard shortcuts from disk. NAME should be a full
  1383.         path name.
  1384.  
  1385.  
  1386. Command:    OP_LOADSETTINGS NAME/A
  1387. Purpose:    Loads a settings file from disk. NAME should be a full path
  1388.         name. Loaded settings will change immediately to their new
  1389.         states. Options not mentioned in the settings file won't be
  1390.         modified.
  1391.  
  1392.  
  1393. Command:    OP_MULTICMD CMD/M
  1394. Purpose:    Allows execution of multiple OctaMED commands. Simply
  1395.         executes the given commands in succession.
  1396. Note:        Since you can't nest quotation marks, you can't execute
  1397.         commands which need spaces in their arguments.
  1398.  
  1399.  
  1400. Command:    OP_REPEATCMD TIMES/N,CMD/F
  1401. Purpose:    Repeats the given command the specified number of times.
  1402.         You can combine this command with OP_MULTICMD to repeat
  1403.         a sequence of commands.
  1404.  
  1405.  
  1406. Command:    OP_SAVEKEYBOARDSHORTCUTS NAME/A
  1407. Purpose:    Saves current keyboard shortcuts to disk. NAME should be a
  1408.         full path name.
  1409.  
  1410.  
  1411. Command:    OP_SET OPT/A,VAL/N,ON/S,OFF/S,TOGGLE/S
  1412. Purpose:    Changes the state/value of the specified option. (See above
  1413.         for a list of options.) If the option has only two states
  1414.         (checkbox gadgets or toggling menus), you must specify ON,
  1415.         OFF or TOGGLE keyword to change the state. Otherwise a
  1416.         number is expected. See OP_GET description for the allowed
  1417.         range.
  1418. WARNING:    OctaMED does NO range checking on the specified numeric
  1419.         values!! You must be absolutely sure you pass valid in-range
  1420.         values! Otherwise OctaMED may get badly confused, even a
  1421.         crash might occur under some conditions! You've been warned.
  1422. RC:        10 if OPT is invalid (not recognized).
  1423.  
  1424.  
  1425. Command:    OP_SETKEYBOARDOCT OCT/N,FKEY/K/N
  1426. Purpose:    Sets the current keyboard edit octaves. Use only values
  1427.         1 - 9 for OCT (1 = 1+2, 2 = 2+3, 3 = 3+4 etc.). FKEY, if
  1428.         specified, overrides OCT, and corresponds function keys
  1429.         F1 - F5. (Acceptable values for FKEY are 1 - 5, 1 = F1...
  1430.         5 = F5).
  1431.  
  1432.  
  1433. Command:    OP_TOGGLEBETWEEN OPT/A,VAL1/N/A,VAL2/N/A
  1434. Purpose:    Toggles a NON-BOOLEAN option (i.e. not a checkbox) between
  1435.         two possible values. If option OPT is currently neither VAL1
  1436.         nor VAL2, it won't be changed.
  1437.  
  1438.  
  1439. Command:    OP_UPDATE ON/S,OFF/S
  1440. Purpose:    Turns display updating (editor and information windows) on
  1441.         or off. It can be used for speeding and cleaning up long
  1442.         operations. OP_UPDATE ON updates the display.
  1443.  
  1444. ############################################################################
  1445. SECTION:    SY    (Synth editor)
  1446. ############################################################################
  1447.  
  1448. Command:    SY_ADDWAVES
  1449. Purpose:    Adds the right waveform to the left one.
  1450.  
  1451.  
  1452. Command:    SY_CHANGEVOL VAL/N/A
  1453. Purpose:    Changes the volume of the selected range. VAL is specified
  1454.         in percents (100 = no change, 50 = halve, 200 = double etc.)
  1455.  
  1456.  
  1457. Command:    SY_CLEARRANGE
  1458. Purpose:    Clears the selected range.
  1459.  
  1460.  
  1461. Command:    SY_CLEARWAVE
  1462. Purpose:    Clears the current waveform.
  1463.  
  1464.  
  1465. Command:    SY_COPYRANGE
  1466. Purpose:    Copies the selected range to the right waveform.
  1467.  
  1468.  
  1469. Command:    SY_COPYWAVE TOTEMP/S,FROMTEMP/S
  1470. Purpose:    Copies a waveform. TOTEMP copies from right to left,
  1471.         FROMTEMP from left to right.
  1472.  
  1473.  
  1474. Command:    SY_CUTRANGE
  1475. Purpose:    Cuts the selected range.
  1476.  
  1477.  
  1478. Command:    SY_DELPROGCOMMAND VOL/S,WF/S
  1479. Purpose:    Deletes a command/number in the program. VOL deletes from
  1480.         the volume program, WF from the waveform program.
  1481.  
  1482.  
  1483. Command:    SY_DELWAVE L=LAST/S
  1484. Purpose:    Deletes a waveform. If LAST specified, the last waveform
  1485.         is deleted, otherwise the current.
  1486.  
  1487.  
  1488. Command:    SY_DOUBLERANGE
  1489. Purpose:    Doubles the selected range.
  1490.  
  1491.  
  1492. Command:    SY_GETNUMBEROFWAVES
  1493. Purpose:    Gets the number of waveforms in this synthsound.
  1494. Result:        Number of waveforms.
  1495.  
  1496.  
  1497. Command:    SY_GETPROGCOMMAND O=OFFSET/N/A,VOL/S,WF/S
  1498. Purpose:    Returns the program command. OFFSET specifies the position
  1499.         in either VOL or WF program.
  1500. Result:        A string, such as 'JMP' or '12' or '7F'.
  1501. RC:        If OFFSET is out of range.
  1502.  
  1503.  
  1504. Command:    SY_GETPROGCURSORX
  1505. Result:        Returns the horizontal position of the cursor
  1506.         (A number between 0 and 5.)
  1507.  
  1508.  
  1509. Command:    SY_GETPROGLENGTH VOL/S,WF/S
  1510. Purpose:    Get the length of the program.
  1511. Result:        A number.
  1512.  
  1513.  
  1514. Command:    SY_GETPROGLINE
  1515. Result:        Current line number. (May exceed program length.)
  1516.  
  1517.  
  1518. Command:    SY_GETPROGSPEED VOL/S,WF/S
  1519. Result:        The execution speed of the program.
  1520.  
  1521.  
  1522. Command:    SY_GETSAMPLE O=OFFSET/N/A
  1523. Purpose:    Returns a sample from the current waveform at a specified
  1524.         position.
  1525. Result:        A 16-bit signed number (-32768 - 32767). Note that 16-bit
  1526.         resolution is used even though synthsounds are currently
  1527.         always in 8 bits!
  1528.  
  1529.  
  1530. Command:    SY_GETSELECTEDWAVE
  1531. Purpose:    Indicates which (left or right) waveform is currently
  1532.         selected (has range in it).
  1533. Result:        0 = left, 1 = right
  1534.  
  1535.  
  1536. Command:    SY_GETWAVELENGTH
  1537. Purpose:    Returns the length of the current waveform.
  1538. Result:        A number (2 - 128, in steps of two).
  1539.  
  1540.  
  1541. Command:    SY_GETWAVENUM
  1542. Result:        Returns the number of the currently selected wave.
  1543.  
  1544.  
  1545. Command:    SY_GOTOPROGLINE L=LINE/N/A
  1546. Purpose:    Go to the specified line in the program editor.
  1547.  
  1548.  
  1549. Command:    SY_GOTOWAVE WAVE/N,NEXT/S,PREV/S
  1550. Purpose:    Go to the specified waveform.
  1551.  
  1552.  
  1553. Command:    SY_MIXWAVES
  1554. Purpose:    Mix the right waveform to the left.
  1555.  
  1556.  
  1557. Command:    SY_MOVEPROGCURSOR POS/N,LEFT/S,RIGHT/S,UP/S,DOWN/S,FKEY/K/N
  1558. Purpose:    Moves the cursor in the program editor. POS specifies
  1559.         an absolute X-position (0 - 5). LEFT/RIGHT/UP/DOWN are
  1560.         self-explanatory. FKEY (use only values 0 - 4) perform
  1561.         the function of pressing keys F6 - F10 (0 = F6 etc.)
  1562.  
  1563.  
  1564. Command:    SY_NEW
  1565. Purpose:    Creates a new synthsound.
  1566.  
  1567.  
  1568. Command:    SY_NEWWAVE H=HERE/S
  1569. Purpose:    Creates a new waveform. Either inserts a new one HERE
  1570.         or appends after the last one (default).
  1571.  
  1572.  
  1573. Command:    SY_NOISE
  1574. Purpose:    Sets the current waveform to noise.
  1575.  
  1576.  
  1577. Command:    SY_PASTERANGE
  1578. Purpose:    Pastes the right waveform to the left.
  1579.  
  1580.  
  1581. Command:    SY_PULSE
  1582. Purpose:    Sets the current waveform to pulse.
  1583.  
  1584.  
  1585. Command:    SY_RAMPDOWN
  1586. Purpose:    Sets the current waveform to ramp down.
  1587.  
  1588.  
  1589. Command:    SY_RAMPUP
  1590. Purpose:    Sets the current waveform to ramp up.
  1591.  
  1592.  
  1593. Command:    SY_RANGE S=START/N,E=END/N,A=ALL/S
  1594. Purpose:    Sets the range.
  1595.  
  1596.  
  1597. Command:    SY_REVERSERANGE
  1598. Purpose:    Reverses the selected range.
  1599.  
  1600.  
  1601. Command:    SY_SETPROGRAM PROGRAM/M/A,VOL/S,WF/S,INS=INSERT/S
  1602. Purpose:    Enters a VOL or WF program. If INSERT is specified,
  1603.         the program will be inserted at the current line.
  1604.         Otherwise the entire program will be set (don't
  1605.         forget the last END command!).
  1606. Example:    SY_SETPROGRAM 64 CHD 2 END VOL
  1607.         Sets the volume program to:
  1608.              40
  1609.             CHD
  1610.              02
  1611.             END
  1612. Note:        Unlike SY_GETPROGRAM, numeric values must be entered
  1613.         as decimal numbers! SY_GETPROGRAM returns them in hex.
  1614.  
  1615.  
  1616. Command:    SY_SETPROGSPEED VOL/K/N,WF/K/N
  1617. Purpose:    Sets the execution speed of either or both programs.
  1618.  
  1619.  
  1620. Command:    SY_SETSAMPLE O=OFFSET/N/A,V=VALUE/N/A
  1621. Purpose:    Sets a sample in the current waveform at position
  1622.         OFFSET. VALUE is a signed 16-bit number (-32768 -
  1623.         +32767). Display is refreshed after this command.
  1624.  
  1625.  
  1626. Command:    SY_SETSELECTEDWAVE TEMP/S,ACTUAL/S
  1627. Purpose:    Selects either the right (TEMP) or the left (ACTUAL)
  1628.         waveform.
  1629.  
  1630.  
  1631. Command:    SY_SETWAVELENGTH LENGTH/N/A
  1632. Purpose:    Sets the length of the current waveform. Accepted
  1633.         values are 2 - 128.
  1634.  
  1635.  
  1636. Command:    SY_SHIFTRANGE L=LEFT/S,R=RIGHT/S
  1637. Purpose:    Shifts the selected range to left or right.
  1638.  
  1639.  
  1640. Command:    SY_SINE
  1641. Purpose:    Sets the current waveform to sine.
  1642.  
  1643.  
  1644. Command:    SY_STRETCH DIST/N/A
  1645. Purpose:    Stretches the current waveform at the cursor. DIST
  1646.         specifies the distance to stretch. A negative value
  1647.         stretches left, a positive to the right.
  1648.  
  1649.  
  1650. Command:    SY_SWAPWAVES
  1651. Purpose:    Exchanges the left and right waveforms.
  1652.  
  1653.  
  1654. Command:    SY_TRIANGLE
  1655. Purpose:    Sets the current waveform to triangle.
  1656.  
  1657.  
  1658. Command:    SY_UNDO
  1659. Purpose:    Undoes the last editing operation.
  1660.  
  1661.  
  1662. Command:    SY_WAVETRANSFORMATION START/N/A,END/N/A
  1663. Purpose:    Transforms a waveform to another. START and END specify
  1664.         the start and end waveforms.
  1665.  
  1666. ############################################################################
  1667. SECTION:    ED    (Edit)
  1668. ############################################################################
  1669.  
  1670. Command:    ED_ADVANCELINE LINES/N,UP/S,DOWN/S,FKEY/K/N,SPC=SPACING/S,
  1671.         USESETT/S,NOWRAP/S
  1672. Version:    V1; V2 for NOWRAP
  1673. Purpose:    Advances the cursor UP or DOWN the specified number of LINES
  1674.         (default 1). If SPACING is set, the current space value will
  1675.         be used. (Note: spacing must be turned on.) If you specify
  1676.         FKEY (values 6 - 10), the cursor is moved to the corresponding
  1677.         line as if F6 - F10 was pressed. USESETT will use the Keyboard
  1678.         Options window settings for advancing the cursor. NOWRAP
  1679.         prevents wrapping at the top and the bottom of the block.
  1680.  
  1681.  
  1682. Command:    ED_CHANGECMDPAGE PAGE/N,NEXT/S,PREV/S,CYCLEFWD/S
  1683. Purpose:    Changes the displayed command page. PAGE is an absolute
  1684.         page number (starting at 0). NEXT/PREV are self-explanatory,
  1685.         CYCLEFWD cycles forward, jumping to the first page after the
  1686.         last.
  1687.  
  1688.  
  1689. Command:    ED_CHANGECMDPAGE PAGE/N,NEXT/S,PREV/S,CYCLEFWD/S
  1690. Purpose:    Changes the displayed command page. PAGE is an absolute
  1691.         page number (starting at 0). NEXT/PREV are self-explanatory,
  1692.         CYCLEFWD cycles forward, jumping to the first page after the
  1693.         last.
  1694.  
  1695.  
  1696. Command:    ED_CLEARNOTECMD NOTE/S,CMD/S,ALLPAGES/S,SKIPSPACING/S
  1697. Version:    V1; V2 for SKIPSPACING
  1698. Purpose:    Clears the current note and/or command values. NOTE and
  1699.         CMD switches specify which parts are cleared. By default
  1700.         only clears the command on the current page, unless
  1701.         ALLPAGES is set. Also takes Space in account and, if
  1702.         SKIPSPACING is not specified, clears all notes in the
  1703.         spacing range.
  1704.  
  1705.  
  1706. Command:    ED_CLEARSEQ FORCE/S
  1707. Purpose:    Clears the current playing sequence. Requests the user for
  1708.         confirmation, unless FORCE exists.
  1709.  
  1710.  
  1711. Command:    ED_CREATESLIDE VOL/S,GEN/S,PITCH1/S,PITCH2/S
  1712. Purpose:    Generates a slide. VOL = volume slide, GEN = generic slide,
  1713.         PITCH1 = pitch slide (using cmd 3), PITCH2 = pitch slide
  1714.         (using cmds 1 and 2).
  1715.  
  1716.  
  1717. Command:    ED_DELETEBLOCK HERE=CURRENT/S,LAST/S
  1718. Purpose:    Deletes the LAST or current (HERE, default) block.
  1719.  
  1720.  
  1721. Command:    ED_DELETENOTE B=BLOCK/K/N,L=LINE/K/N,T=TRACK/K/N,DELSPACE/N,
  1722.         NOTEONLY/S,CMDONLY/S
  1723. Version:    V1; V2 for NOTEONLY and CMDONLY
  1724. Purpose:    Deletes a note and moves the following notes on that track
  1725.         one line upwards. BLOCK/LINE/TRACK specify the position, by
  1726.         default the current cursor position is used. DELSPACE is the
  1727.         number of notes to remove (default = 1). NOTEONLY and CMDONLY
  1728.         delete/scroll only either the note or the command parts.
  1729.  
  1730.  
  1731. Command:    ED_DELETEPLAYSEQ
  1732. Purpose:    Deletes the current entry of the playing sequence.
  1733.  
  1734.  
  1735. Command:    ED_DELETESECLIST
  1736. Purpose:    Deletes the current entry of the section list.
  1737.  
  1738.  
  1739. Command:    ED_DELETESECTION
  1740. Purpose:    Deletes the current playing sequence list (section).
  1741.  
  1742.  
  1743. Command:    ED_ENTERNOTE NOTE/N,PROGKEY/K/N,HOLD/S
  1744. Purpose:    Enters a note to the current position (as if it had been
  1745.         entered using the keyboard). NOTE is the note number,
  1746.         zero is the same as pressing DEL. If PROGKEY exists, the
  1747.         desired programmable key definition is pasted. HOLD enters
  1748.         the hold symbol.
  1749.  
  1750.  
  1751. Command:    ED_FINDSAMPLEOCCURRENCE PREV/S,NEXT/S
  1752. Purpose:    Finds the NEXT or PREVious occurrence of the current
  1753.         sample.
  1754.  
  1755.  
  1756. Command:    ED_GETBLOCKNAME B=BLOCK/N
  1757. Result:        Returns the name of the current, or specified block.
  1758.  
  1759.  
  1760. Command:    ED_GETCURRBLOCK
  1761. Result:        Returns the number of the current block.
  1762.  
  1763.  
  1764. Command:    ED_GETCURRLINE
  1765. Result:        Returns the current line number (in decimal).
  1766.  
  1767.  
  1768. Command:    ED_GETCURRPAGE
  1769. Result:        Returns the currently displayed command page.
  1770.  
  1771.  
  1772. Command:    ED_GETCURRPLAYSEQ
  1773. Result:        Returns the current position in the current playing
  1774.         sequence list.
  1775.  
  1776.  
  1777. Command:    ED_GETCURRSECLIST
  1778. Result:        Returns the current position in the section list.
  1779.  
  1780.  
  1781. Command:    ED_GETCURRSECTION
  1782. Result:        Returns the number of the current playing sequence list
  1783.         (section).
  1784.  
  1785.  
  1786. Command:    ED_GETCURRTRACK
  1787. Result:        Returns the number of the current track (on which the cursor
  1788.         is).
  1789.  
  1790.  
  1791. Command:    ED_GETDATA B=BLOCK/K/N,L=LINE/K/N,T=TRACK/K/N,P=PAGE/K/N,
  1792.         NOTE/S,INUM/S,CMDNUM=CMDTYPE/S,QUAL=CMDLVL/S,PRTALL/S
  1793. Purpose:    Returns data from the song. BLOCK/LINE/TRACK/PAGE specify
  1794.         the position data is fetched from. (Defaults to cursor
  1795.         position.) The other arguments specify which data you want
  1796.         to get. (Only one item can be fetched per command.)
  1797.         NOTE returns the note number (0 = ---, 1 = C-1, 2 = C#1..).
  1798.         INUM returns the instrument number (0 = none).
  1799.         CMDNUM returns the command number (0 - 255).
  1800.         QUAL returns the command qualifier (0 - 255).
  1801.         PRTALL returns the textual representation of a note and its
  1802.         command, for example: 'C-3 20000'.
  1803. Note:        Don't assume that the ranges remain constant. They might be
  1804.         raised. In particular, don't attempt to interpret PRTALL
  1805.         (it should only be displayed to the user), the note format
  1806.         is not guaranteed to stay constant.
  1807.  
  1808.  
  1809. Command:    ED_GETLINEHIGHLIGHT B=BLOCK/K/N,L=LINE/N
  1810. Result:        Returns the highlight state of a line.
  1811.  
  1812.  
  1813. Command:    ED_GETNUMBLOCKS
  1814. Result:        Returns the total number of blocks in memory.
  1815.  
  1816.  
  1817. Command:    ED_GETNUMLINES B=BLOCK/N
  1818. Result:        Returns the length of the current or specified block.
  1819.  
  1820.  
  1821. Command:    ED_GETNUMPAGES B=BLOCK/N
  1822. Result:        Returns the number of pages on the current or specified
  1823.         block.
  1824.  
  1825.  
  1826. Command:    ED_GETNUMPLAYSEQ
  1827. Result:        Returns the length of the current playing sequence list.
  1828.  
  1829.  
  1830. Command:    ED_GETNUMSECLIST
  1831. Result:        Returns the length of the section list.
  1832.  
  1833.  
  1834. Command:    ED_GETNUMSECTIONS
  1835. Result:        Returns the total number of playing sequence lists
  1836.         (sections).
  1837.  
  1838.  
  1839. Command:    ED_GETNUMTRACKS B=BLOCK/N
  1840. Result:        Returns the number of tracks on the current or specified
  1841.         block.
  1842.  
  1843.  
  1844. Command:    ED_GETPLAYSEQBLOCK O=OFFSET/N
  1845. Result:        Returns the block number from the playing sequence list at
  1846.         offset OFFSET.
  1847.  
  1848.  
  1849. Command:    ED_GETPREVIOUSINUM
  1850. Result:        Returns the previous instrument number on the current track.
  1851.  
  1852.  
  1853. Command:    ED_GETSECLISTSECTION O=OFFSET/N
  1854. Result:        Extracts data from the section list at OFFSET (default =
  1855.         current position). Returns the playing sequence list number
  1856.         (section number).
  1857.  
  1858.  
  1859. Command:    ED_GETSECTIONNAME
  1860. Result:        Returns the name of the current playing sequence list
  1861.         (section).
  1862.  
  1863.  
  1864. Command:    ED_GOTO B=BLOCK/K/N,L=LINE/K/N,T=TRACK/K/N,P=PAGE/K/N
  1865. Purpose:    Moves the cursor to the specified position.
  1866.  
  1867.  
  1868. Command:    ED_GOTOBLOCK PREV/S,NEXT/S,FIRST/S,LAST/S,FIRSTLINE/S,
  1869.         FIRSTPAGE/S
  1870. Purpose:    Mainly to support different OctaMED keyboard shortcuts.
  1871.         Jump to PREV/NEXT/FIRST/LAST block. If FIRSTLINE is set,
  1872.         also jumps to the first line on that block. If FIRSTPAGE
  1873.         is set, jumps also to the first command page.
  1874.  
  1875.  
  1876. Command:    ED_GOTOCMDPAGE PAGE/N,NEXT/S,PREV/S,CYCLEFWD/S
  1877. Purpose:    Changes the displayed command page. PAGE is an absolute
  1878.         page number (starting at 0). NEXT/PREV are self-explanatory,
  1879.         CYCLEFWD cycles forward, jumping to the first page after the
  1880.         last.
  1881.  
  1882.  
  1883. Command:    ED_GOTOPLAYSEQ NUM/N,PREV/S,NEXT/S,FIRST/S,LAST/S,BOTTOM/S,
  1884.         JUMPED/S,JUMPPLAY/S
  1885. Purpose:    Changes the current position at the playing sequence list.
  1886.         NUM sets the absolute position, PREV/NEXT/FIRST/LAST move
  1887.         onto the corresponding entry on the list. BOTTOM jumps
  1888.         past the last number, so you can insert new entries at the
  1889.         bottom of the list. JUMPED instructs the editor to jump
  1890.         onto the first line of the block in that position.
  1891.         JUMPPLAY does the same, but only while playing.
  1892. RC:        If out of range.
  1893.  
  1894.  
  1895. Command:    ED_GOTOSECLIST SECPOS/N/A
  1896. Purpose:    Changes the position in the section list.
  1897.  
  1898.  
  1899. Command:    ED_GOTOSECTION SECT/N/A
  1900. Purpose:    Changes the current playing sequence list (section).
  1901. RC:        If SEQL out of range.
  1902.  
  1903.  
  1904. Command:    ED_GOTOTRACK PREVNOTE/S,NEXTNOTE/S,NEXTCHORD/S,FIRST/S,
  1905.         LAST/S,PREVDISP/S,NEXTDISP/S
  1906. Purpose:    Mainly to support different OctaMED keyboard shortcuts.
  1907.         Moves the cursor:
  1908.         PREVNOTE/NEXTNOTE    onto the prev/next note
  1909.         NEXTCHORD        to next chord track
  1910.         FIRST            to the first track
  1911.         LAST            to the last track
  1912.         PREVDISP/NEXTDISP    scrolls the display 1 screenful
  1913.  
  1914.  
  1915. Command:    ED_HIGHLIGHTLINE B=BLOCK/K/N,L=LINE/N,ON/S,OFF/S,TOGGLE/S
  1916. Purpose:    Highlights, dehighlights, or toggles the current or
  1917.         specified line
  1918.  
  1919.  
  1920. Command:    ED_INSERTEMPTYNOTE B=BLOCK/K/N,L=LINE/K/N,T=TRACK/K/N,
  1921.         INSSPACE/N,NOTEONLY/S,CMDONLY/S
  1922. Version:    V1; V2 for NOTEONLY and CMDONLY
  1923. Purpose:    Inserts an empty note at the cursor (or the specified
  1924.         position), scrolling the following notes on that track
  1925.         downwards. INSSPACE controls the number of notes inserted
  1926.         (default = 1). NOTEONLY and CMDONLY insert/scroll only
  1927.         the note or command parts.
  1928.  
  1929.  
  1930. Command:    ED_ISBLOCKINSEQ B=BLOCK/N
  1931. Purpose:    Scans sections in the section list and checks if the
  1932.         specified or current block exists in the playing sequence.
  1933. Result:        0 = doesn't exist (block is unused) - or block number invalid
  1934.         1 = the block exists in the playing sequence
  1935.  
  1936.  
  1937. Command:    ED_KILLNOTES CURRTRACK/S,ALLTRACKS/S,CBS=CHANGEBLOCKSIZE/S
  1938. Purpose:    Kills the notes below the cursor. CURRTRACK only kills the
  1939.         notes on that track, ALLTRACKS kills all notes following
  1940.         the current one. CHANGEBLOCKSIZE kills all notes by changing
  1941.         the block size.
  1942.  
  1943.  
  1944. Command:    ED_MOVECURSOR LEFT/S,RIGHT/S,NOTE/S,INUM/S,CMDNUM1=CMDTYPE1/S,
  1945.         CMDNUM2=CMDTYPE2/S,QUAL1=CMDLVL1/S,QUAL2=CMDLVL2/S
  1946. Purpose:    Moves the cursor left or right, or relative to the current
  1947.         note, onto the specified number.
  1948.  
  1949.  
  1950. Command:    ED_NEWBLOCK HERE=INSERT/S,LAST=APPEND/S,TRACKS/N/K,
  1951.         LINES/N/K,PAGES/N/K,CLONECURR/S
  1952. Purpose:    Creates a new block, either HERE, or after the LAST block.
  1953.         You can also specify its size. CLONECURR clones the
  1954.         dimensions of the current block.
  1955. RC:        10, if incorrect sizes are given or if the creation fails
  1956.         (due to lack of memory).
  1957.  
  1958.  
  1959. Command:    ED_NEWPLAYSEQ BLOCK/N,CURRBLOCK/S,COPYBLOCK/S
  1960. Purpose:    Inserts a new entry to the playing sequence list at current
  1961.         position. COPYBLOCK copies the previous block number there,
  1962.         CURRBLOCK inserts the current block number, BLOCK can be
  1963.         used to specify any block. (Default = CURRBLOCK.)
  1964.  
  1965.  
  1966. Command:    ED_NEWSECLIST INSERT=HERE/S,APPEND=LAST/S
  1967. Purpose:    INSERTs or APPENDs a new entry to the section list.
  1968.  
  1969.  
  1970. Command:    ED_NEWSECTION INSERT=HERE/S,APPEND=LAST/S
  1971. Purpose:    Creates a new playing sequence list (section), either
  1972.         INSERTing or APPENDing it to currently existing sequence
  1973.         lists.
  1974. RC:        10, if creation failed (no memory).
  1975.  
  1976.  
  1977. Command:    ED_NOTETONUMBER NOTE/A
  1978. Version:    V2
  1979. Purpose:    Converts a string like "C-2" or "D#5" to a note number.
  1980.         For any invalid values of NOTE, a zero is returned.
  1981.  
  1982.  
  1983. Command:    ED_NUMBERTONOTE NOTE/N/A
  1984. Purpose:    Converts a note number to a string. E.g. 2 is converted to
  1985.         'C#1'.
  1986. Result:        A string representing the note.
  1987.  
  1988.  
  1989. Command:    ED_PICKPROGKEYNOTE PROGKEY/N/A
  1990. Purpose:    Picks the note/commands the cursor is on to the specified
  1991.         programmable key slot.
  1992.  
  1993.  
  1994. Command:    ED_PLAYNOTE NOTE/N,INUM/N,TRACK/N
  1995. Purpose:    Plays a note. NOTE is a note number (Default = instrument's
  1996.         default pitch), INUM instrument number (Default = current
  1997.         instrument), and TRACK is a track number (Default = current
  1998.         track).
  1999.  
  2000.  
  2001. Command:    ED_SETBLOCKLINES B=BLOCK/N/K,LINES/N/A
  2002. Purpose:    Changes the length of the current/specified block.
  2003. RC:        If LINES < 1 or LINES > 3200.
  2004.  
  2005.  
  2006. Command:    ED_SETBLOCKNAME B=BLOCK/K/N,NAME
  2007. Purpose:    Sets a block's name.
  2008.  
  2009.  
  2010. Command:    ED_SETBLOCKPAGES B=BLOCK/N/K,PAGES/N/A
  2011. Purpose:    Adds/removes command pages. PAGES is the new number of
  2012.         pages.
  2013. RC:        If PAGES is out of range.
  2014.  
  2015.  
  2016. Command:    ED_SETBLOCKTRACKS B=BLOCK/N/K,TRACKS/N/A
  2017. Purpose:    Changes a block's width.
  2018. RC:        If TRACKS is out of range.
  2019.  
  2020.  
  2021. Command:    ED_SETDATA B=BLOCK/K/N,L=LINE/K/N,T=TRACK/K/N,P=PAGE/K/N,
  2022.         NOTE/K/N,INUM/K/N,CMDNUM=CMDTYPE/K/N,QUAL=CMDLVL/K/N,ALTCMD/S
  2023. Purpose:    Changes notes/data. BLOCK/LINE/TRACK/PAGE specify the
  2024.         position of the note to change.
  2025.         NOTE changes the note.
  2026.         INUM changes the instrument number.
  2027.         CMDNUM changes the command number.
  2028.         QUAL changes the command qualifier.
  2029.         ALTCMD places the Right-Alt prg. key definition.
  2030. Example:    This inserts a note 'C-2 30205':
  2031.         ED_SETDATA NOTE 13 INUM 3 CMDNUM 2 QUAL 5
  2032. See also:    The next command:
  2033.  
  2034.  
  2035. Command:    ED_SETDATA_UPDATE ON/S,OFF/S
  2036. Purpose:    By default, ED_SETDATA redraws the display after changing
  2037.         the data. You can turn this temporarily off by this command.
  2038.         If you're doing a lot of changes, this is much faster.
  2039.         OFF turns refreshing off.
  2040.         ON turns it back on.
  2041.         With no arguments, redraws the display.
  2042. Note:        Always remember to turn this back on after done. Otherwise
  2043.         other macros might fail to refresh the display.
  2044.  
  2045.  
  2046. Command:    ED_SETMIDIINPUTCHANNEL CH=CHANNEL/N/A
  2047. Version:    V2
  2048. Purpose:    Sets the input channel for MIDI. Values 0 - 16 are accepted
  2049.         (where 0 means all channels).
  2050.  
  2051.  
  2052. Command:    ED_SETPLAYSEQBLOCK O=OFFSET/N,B=BLOCK/N,INCREASE/S,DECREASE/S
  2053. Purpose:    Edits the playing sequence list. INCREASE/DECREASE modify
  2054.         the selected/current value by one.
  2055. RC:        If INCREASE/DECREASE over/underflow
  2056.  
  2057.  
  2058. Command:    ED_SETSECLISTSECTION O=OFFSET/N,SC=SECNUM/N
  2059. Purpose:    Edits the section list.
  2060. RC:        If OFFSET or SEQLISTNUM is out of range.
  2061.  
  2062.  
  2063. Command:    ED_SETSECTIONNAME NAME
  2064. Purpose:    Sets the name of the current playing sequence list
  2065.         (section).
  2066.  
  2067.  
  2068. Command:    ED_SWAPNOTEWITH FOLL=FOLLOWING/S,RIGHT/S
  2069. Purpose:    Swaps the current note with the FOLLOWING note or the
  2070.         note on the RIGHT.
  2071.  
  2072. ############################################################################
  2073. SECTION:    RN    (Range)
  2074. ############################################################################
  2075.  
  2076. Command:    RN_BUFFEREXISTS BUFF/N/A
  2077. Version:    V2
  2078. Purpose:    Returns 1, if the specified buffer (0, 1 or 2) exists.
  2079.         Otherwise returns 0.
  2080.  
  2081.  
  2082. Command:    RN_CANCELRANGE
  2083. Purpose:    Discards the range.
  2084.  
  2085.  
  2086. Command:    RN_CHANGEINUM SRC/N,DEST/N,CHANGE/S,EXCHANGE=SWAP/S,
  2087.         DELNOTES/S,AFFECT/K/N
  2088. Purpose:    Changes instrument numbers throughout the specified range.
  2089.         SRC/DEST specify the source and destination numbers. (If
  2090.         not specified, values will be taken from the Transpose
  2091.         window.) CHANGE changes SRC to DEST. EXCHANGE swaps them.
  2092.         DELNOTES deletes all instances of SRC.
  2093.  
  2094.         AFFECT is a numeric value that specifies the range to
  2095.         affect:
  2096.             1 = the entire song
  2097.             2 = current block
  2098.             3 = current track
  2099.             4 = selected track
  2100.             5 = ranged area
  2101.  
  2102.         (If not specified, the value in the Transpose window will
  2103.         be used.)
  2104.  
  2105.  
  2106. Command:    RN_CHANGENOTES SRC/N,DEST/N,CHANGE/S,EXCHANGE=SWAP/S,
  2107.         AFFECT/K/N
  2108. Purpose:    Changes notes throughout the specified range. SRC/DEST
  2109.         specify the source and destination notes (0 = '---'), if
  2110.         not specified, values in the Transpose window will be used.
  2111.         CHANGE changes SRC to DEST, EXCHANGE swaps them.
  2112.  
  2113.         AFFECT is a numeric value that specifies the range to
  2114.         affect (see RN_CHANGEINUM).
  2115.  
  2116.  
  2117. Command:    RN_COPY RANGE/S,TRACK/S,BLOCK/S
  2118. Purpose:    Copies a RANGE/TRACK/BLOCK.
  2119.  
  2120.  
  2121. Command:    RN_CUT RANGE/S,TRACK/S,BLOCK/S
  2122. Purpose:    Cuts a RANGE/TRACK/BLOCK.
  2123.  
  2124.  
  2125. Command:    RN_DELETELINE LINE/N
  2126. Purpose:    Deletes the current or specified line.
  2127.  
  2128.  
  2129. Command:    RN_DELETETRACK TRACK/N,WHOLESONG/S
  2130. Purpose:    Deletes the current or specified track. WHOLESONG deletes
  2131.         the same-numbered track throughout the entire song.
  2132.  
  2133.  
  2134. Command:    RN_DISCARDBUFFERS BUFF/N
  2135. Version:    V1, BUFF/N option from V2
  2136. Purpose:    Discards all copy buffers (if BUFF not specified), or
  2137.         the specified buffer (0 = block, 1 = track or 2 = generic).
  2138.  
  2139.  
  2140. Command:    RN_ERASE RANGE/S,TRACK/S,BLOCK/S
  2141. Purpose:    Clears the RANGE/TRACK/BLOCK.
  2142.  
  2143.  
  2144. Command:    RN_EXPANDBLOCK FACTOR/N
  2145. Purpose:    Expands the block. FACTOR, if specified, changes the
  2146.         Factor value in the Expand/Shrink window.
  2147. RC:        In case of error or invalid FACTOR.
  2148.  
  2149.  
  2150. Command:    RN_FINDREPLACESOURCE NEXT/S,PREV/S
  2151. Version:    V2
  2152. Purpose:    Search for the next/previous occurrence of the Source
  2153.         parameter in Replace Notes window. If neither NEXT nor
  2154.         PREV is specified, the command checks the note & command
  2155.         under the cursor and returns 1 (if it matches) or 0
  2156.         (if not). If either NEXT or PREV is specified, this
  2157.         command returns 1 if a new occurrence was found, and 0
  2158.         if not.
  2159. See also:    RN_REPLACE
  2160.  
  2161.  
  2162. Command:    RN_GETBUFFDATA BUFF/N/A,L=LINE/K/N/A,T=TRACK/K/N/A,
  2163.         P=PAGE/K/N,NOTE/S,INUM/S,CMDNUM=CMDTYPE/S,QUAL=CMDLVL/S
  2164. Version:    V2
  2165. Purpose:    Returns data from the specified copy buffer (specified by
  2166.         BUFF). See ED_GETDATA.
  2167.  
  2168.  
  2169. Command:    RN_GETBUFFLINES BUFF/N/A
  2170. Version:    V2
  2171. Purpose:    Returns the number of lines currently in the specified
  2172.         copy buffer (0, 1 or 2).
  2173. RC:        If an invalid buffer # specified, or if it does not exist.
  2174.  
  2175.  
  2176. Command:    RN_GETBUFFPAGES BUFF/N/A
  2177. Version:    V2
  2178. Purpose:    Returns the number of pages currently in the specified
  2179.         copy buffer (0, 1 or 2).
  2180. RC:        If an invalid buffer # specified, or if it does not exist.
  2181.  
  2182.  
  2183. Command:    RN_GETBUFFTRACKS BUFF/N/A
  2184. Version:    V2
  2185. Purpose:    Returns the number of tracks currently in the specified
  2186.         copy buffer (0, 1 or 2).
  2187. RC:        If an invalid buffer # specified, or if it does not exist.
  2188.  
  2189.  
  2190. Command:    RN_GETRANGEENDLINE
  2191. Purpose:    Returns the line number of the last ranged line.
  2192. RC:        If no range selected.
  2193.  
  2194.  
  2195. Command:    RN_GETRANGEENDTRACK
  2196. Purpose:    Returns the track number of the last ranged track.
  2197. RC:        If no range selected.
  2198.  
  2199.  
  2200. Command:    RN_GETRANGESTARTLINE
  2201. Purpose:    Returns the line number of the first ranged line.
  2202. RC:        If no range selected.
  2203.  
  2204.  
  2205. Command:    RN_GETRANGESTARTTRACK
  2206. Purpose:    Returns the track number of the first ranged track.
  2207. RC:        If no range selected.
  2208.  
  2209.  
  2210. Command:    RN_GETSPACINGFROMRANGE
  2211. Purpose:    Gets the spacing from range. (See Alt-~ shortcut.)
  2212.  
  2213.  
  2214. Command:    RN_INSERTLINE LINE/N
  2215. Purpose:    Inserts an empty line at LINE or current line.
  2216.  
  2217.  
  2218. Command:    RN_INSERTTRACK TRACK/N,WHOLESONG/S
  2219. Purpose:    Inserts an empty track.
  2220.  
  2221.  
  2222. Command:    RN_ISRANGED
  2223. Purpose:    Tells if the range is currently displayed or not.
  2224. Result:        0 = no range, 1 = a range exists.
  2225.  
  2226.  
  2227. Command:    RN_JOINBLOCKS
  2228. Purpose:    Joins the current block with the next one.
  2229. RC:        If fails.
  2230.  
  2231.  
  2232. Command:    RN_NOTEECHO DIST/N,MINVOL/N
  2233. Purpose:    Echoes the range. DIST is the distance between echoes.
  2234.         MINVOL is the minimum volume to use.
  2235. RC:        In case of error or no range.
  2236.  
  2237.  
  2238. Command:    RN_PASTE RANGE/S,TRACK/S,BLOCK/S,TS=TOSELECTED/S,
  2239.         CMDONLY/S,NOTEONLY/S
  2240. Version:    V1; V2 for CMDONLY and NOTEONLY
  2241. Purpose:    Pastes the RANGE/TRACK/BLOCK. TOSELECTED applies to
  2242.         RANGE only, if selected, skips unselected tracks when
  2243.         pasting. CMDONLY and NOTEONLY restrict this command to
  2244.         only insert commands or notes.
  2245.  
  2246.  
  2247. Command:    RN_REPLACE SOURCE,DEST,SONG/S,BLOCK/S,TRACK/S,SELTRACKS/S,
  2248.         RANGE/S,CURRNOTE/S
  2249. Version:    V2
  2250. Purpose:    Provides the functionality of "Replace Notes" window.
  2251.         SOURCE and DEST allow one to set the source and destination
  2252.         notes and masks in that window. The rest of the switches
  2253.         correspond to the buttons in the window. SOURCE and DEST
  2254.         are given in form (examples):
  2255.             "C-3" (the rest are set 'x')
  2256.             "D#5 12345"
  2257.             "E-610xx34"
  2258.             "F-2 A" (the rest are set 'x')
  2259.  
  2260.  
  2261. Command:    RN_REMARK RELTRACK/S
  2262. Version:    V2
  2263. Purpose:    Re-marks the previously selected range. (And jumps to the
  2264.         beginning of it.) If the RELTRACK option is set, the range
  2265.         starts on the track cursor is currently on.
  2266.  
  2267.  
  2268. Command:    RN_SETBUFFDATA BUFF/N/A,L=LINE/K/N/A,T=TRACK/K/N/A,
  2269.         P=PAGE/K/N,NOTE/K/N,INUM/K/N,CMDNUM=CMDTYPE/K/N,
  2270.         QUAL=CMDLVL/K/N
  2271. Version:    V2
  2272. Purpose:    Changes copy buffer contents. See RN_GETBUFFDATA and
  2273.         ED_SETDATA.
  2274.  
  2275.  
  2276. Command:    RN_SETRANGE STARTTRACK/N,STARTLINE/N,ENDTRACK/N,ENDLINE/N,
  2277.         TRACK/K/N,LINE/K/N,CURRBLOCK/S,CURRTRACK/S
  2278. Purpose:    Sets the range area. STARTTRACK/LINE and ENDTRACK/LINE
  2279.         specify absolute values for the range. TRACK ranges the
  2280.         specified track, LINE the specified line. CURRBLOCK/TRACK
  2281.         range the current block or track, respectively.
  2282.  
  2283.  
  2284. Command:    RN_SHRINKBLOCK FACTOR/N
  2285. Purpose:    Shrinks the block. FACTOR, if specified, changes the
  2286.         Factor value in the Expand/Shrink window.
  2287. RC:        In case of error or invalid FACTOR.
  2288.  
  2289.  
  2290. Command:    RN_SPLITBLOCK LINE/N
  2291. Purpose:    Splits the current block at current or specified LINE.
  2292. RC:        In case of failure.
  2293.  
  2294.  
  2295. Command:    RN_SPREADNOTES WIDTH/N
  2296. Purpose:    Spreads the ranged notes (see Spread window).
  2297. RC:        In case of failure.
  2298.  
  2299.  
  2300. Command:    RN_SWAP TRACK/S,BLOCK/S
  2301. Purpose:    Swaps the current track or block with the copy buffer.
  2302.  
  2303.  
  2304. Command:    RN_SWAPBUFFERS BUFF1/N/A,BUFF2/N/A
  2305. Version:    V2
  2306. Purpose:    Swaps the contents of two copy buffers (BUFF1 and BUFF2).
  2307.         BUFF1 and BUFF2 are 0 (block), 1 (track) or 2 (edit).
  2308. Example:    RN_SWAPBUFFERS 0 2 /* swaps the block and edit buffers */
  2309.  
  2310.  
  2311. Command:    RN_TRANSPOSE HSUP/S,HSDOWN/S,OCTUP/S,OCTDOWN/S,AFFECT/K/N,
  2312.         ALLINSTRS/S,CURRINSTR/S
  2313. Purpose:    Transposes the specified area:
  2314.         HSUP = halfstep up
  2315.         HSDOWN = halfstep down
  2316.         OCTUP = octave up
  2317.         OCTDOWN = octave down.
  2318.  
  2319.         AFFECT - see RN_CHANGEINUM.
  2320.         ALLINSTRS = affect all instruments
  2321.         CURRINSTR = affect current instrument
  2322.         (If neither ALLINSTRS nor CURRINSTR is given, the gadget
  2323.         state in Transpose window is checked.)
  2324.  
  2325. ############################################################################
  2326. SECTION:    MM    (MIDI Message editor)
  2327. ############################################################################
  2328.  
  2329. Command:    MM_GETCURRMSGNUM
  2330. Version:    V2
  2331. Purpose:    Returns the number of the currently selected MIDI message.
  2332.         (Or 0 if there are no messages in memory.)
  2333.  
  2334.  
  2335. Command:    MM_LOADMESSAGE NAME
  2336. Version:    V2
  2337. Purpose:    Loads a MIDI message from disk. If NAME not specified,
  2338.         a file requester is displayed.
  2339.  
  2340.  
  2341. Command:    MM_MOVECURSOR LEFT/S,RIGHT/S,UP/S,DOWN/S
  2342. Purpose:    Quite obvious.
  2343.  
  2344.  
  2345. Command:    MM_SENDMESSAGE MSGNUM/N
  2346. Version:    V2
  2347. Purpose:    Sends the specified MIDI Message. (Or current MIDI Message,
  2348.         if nothing specified.)
  2349.  
  2350.  
  2351. Command:    MM_SETCURRMSGNUM MSG=MESSAGE/N/A
  2352. Version:    V2
  2353. Purpose:    Selects the current message (displayed on the MIDI Message
  2354.         editor).
  2355.